мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Следующая версияСледующая версия справа и слева
haskell [17/07/2018 16:58] – [7.1 Монада Maybe] vlasovhaskell [09/09/2018 22:52] – [Урок 1. Знакомство с интерпретатором ghci] vlasov
Строка 40: Строка 40:
 **Полезные команды** в ghci: **Полезные команды** в ghci:
  
-:q -- выйти из оболочки;+'':q'' -- выйти из оболочки;
  
-:l <имя программы> -- загрузить программу с указанным именем. Программа может не содержать модуля Main, а только определения функций (что мы и будем делать первое время);+'':l <имя программы>'' -- загрузить программу с указанным именем. Программа может не содержать модуля Main, а только определения функций (что мы и будем делать первое время);
  
-:r -- перегрузить текущий модуль;+'':r'' -- перегрузить текущий модуль;
  
-:t <имя функции> -- напечатать сигнатуру функции;+'':t <имя функции>'' -- напечатать сигнатуру функции;
  
-:i <имя функции> -- напечатать сигнатуру функции и указать, в каком файле была определена данная функция;+'':i <имя функции>'' -- напечатать сигнатуру функции и указать, в каком файле была определена данная функция;
  
 Кроме того, надо знать, что выражения в оболочке интерпретатора можно сразу вычислять. Кроме того, надо знать, что выражения в оболочке интерпретатора можно сразу вычислять.
-Наберем 2 + 2 и нажмем Enter, или наберем abs (-2) и нажмем Enter, и т.д.+Наберем 2 + 2 и нажмем Enter, или наберем ''abs (-2)'' и нажмем Enter, и т.д.
  
 Новые функции (пользовательские) можно задавать, как уже писалось выше, в отдельных файлах и подгружать по мере необходимости, либо сразу определять в оболочке: Новые функции (пользовательские) можно задавать, как уже писалось выше, в отдельных файлах и подгружать по мере необходимости, либо сразу определять в оболочке:
Строка 58: Строка 58:
 > let {f :: Int -> Int; f n = n * 2} > let {f :: Int -> Int; f n = n * 2}
 </code> </code>
 +
 +Отметим, что в версиях ''ghc/ghci'', начиная с 8.0.2, ключевое слово ''let'' писать необязательно.
  
 Многострочные записи делают следующим образом: Многострочные записи делают следующим образом:
Строка 76: Строка 78:
 </code> </code>
  
-Для просмотра тех или иных значений функции f можно попробовать набрать f 4, а для просмотра произвольного значения foo набрать show foo.+Для просмотра тех или иных значений функции ''f'' можно попробовать набрать ''f 4'', а для просмотра произвольного значения ''foo'' набрать ''show foo''.
  
  
Строка 563: Строка 565:
  
 **Задача 1.** Написать код, генерирующий потенциально бесконечный  **Задача 1.** Написать код, генерирующий потенциально бесконечный 
-список чисел Фиббоначи. Рассмотреть возможности "лобового решения" с бинарной рекурсией и оптимизации. (см. [[haskell:fibb|варианты решения]])+список чисел Фибоначчи. Рассмотреть возможности "лобового решения" с бинарной рекурсией и оптимизации. (см. [[haskell:fibb|варианты решения]])