мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версияСледующая версияСледующая версия справа и слева | ||
haskell [17/07/2018 16:20] – [Урок 5. Типы данных, определяемые пользователем] vlasov | haskell [10/09/2018 12:22] – [Урок 2. Способы определения функций] vlasov | ||
---|---|---|---|
Строка 40: | Строка 40: | ||
**Полезные команды** в ghci: | **Полезные команды** в ghci: | ||
- | :q -- выйти из оболочки; | + | '' |
- | :l <имя программы> | + | '' |
- | :r -- перегрузить текущий модуль; | + | '' |
- | :t <имя функции> | + | '' |
- | :i <имя функции> | + | '' |
Кроме того, надо знать, что выражения в оболочке интерпретатора можно сразу вычислять. | Кроме того, надо знать, что выражения в оболочке интерпретатора можно сразу вычислять. | ||
- | Наберем 2 + 2 и нажмем Enter, или наберем abs (-2) и нажмем Enter, и т.д. | + | Наберем 2 + 2 и нажмем Enter, или наберем |
Новые функции (пользовательские) можно задавать, | Новые функции (пользовательские) можно задавать, | ||
Строка 58: | Строка 58: | ||
> let {f :: Int -> Int; f n = n * 2} | > let {f :: Int -> Int; f n = n * 2} | ||
</ | </ | ||
+ | |||
+ | Отметим, | ||
Многострочные записи делают следующим образом: | Многострочные записи делают следующим образом: | ||
Строка 76: | Строка 78: | ||
</ | </ | ||
- | Для просмотра тех или иных значений функции f можно попробовать набрать f 4, а для просмотра произвольного значения foo набрать show foo. | + | Для просмотра тех или иных значений функции |
Строка 90: | Строка 92: | ||
и мы уже вряд ли сможем посчитать факториал с аргументом более 31. | и мы уже вряд ли сможем посчитать факториал с аргументом более 31. | ||
- | Остальной код задан в виде уравнений, | + | Остальной код задан в виде уравнений, |
- | Возможно использование рекурсии при описании функции. При вызове функций им передается | + | |
<code haskell> | <code haskell> | ||
Строка 563: | Строка 564: | ||
**Задача 1.** Написать код, генерирующий потенциально бесконечный | **Задача 1.** Написать код, генерирующий потенциально бесконечный | ||
- | список чисел Фиббоначи. Рассмотреть возможности " | + | список чисел Фибоначчи. Рассмотреть возможности " |
Строка 1717: | Строка 1718: | ||
</ | </ | ||
- | Здесь как раз видно, что обычные комбинаторы функции '' | + | Здесь как раз видно, что обычные комбинаторы функции '' |
<code haskell> | <code haskell> | ||
f >=> g = \x -> (f x >>= g) | f >=> g = \x -> (f x >>= g) |