В Haskell есть очень хорошая система типов, которая умеет автоматически делать вывод типов. Это означает, что вам не нужно описывать тип в каждом куске кода, потому что система типов может вычислить это сама. Если, скажем, a = 5 + 4
, то вам нет необходимости говорить, что a
– число, так как это может быть выведено автоматически. Вывод типов делает ваш код более универсальным. Если функция принимает два параметра и складывает их, а тип параметров не задан явно, то функция будет работать с любыми двумя параметрами, которые ведут себя как числа.
Haskell –
Язык Haskell был придуман несколькими по-настоящему умными ребятами (с диссертациями). Работа по его созданию началась в 1987 году, когда комитет исследователей задался целью изобрести язык, который станет настоящей сенсацией. В 1999 году было опубликовано описание языка (Haskell Report), ознаменовавшее появление первой официальной его версии.
Что понадобится для изучения языка
Если коротко, то для начала понадобятся текстовый редактор и компилятор Haskell. Вероятно, у вас уже установлен любимый редактор, так что не будем заострять на этом внимание. На сегодняшний день самым популярным компилятором Haskell является GHC (Glasgow Haskell Compiler), который мы и будем использовать в примерах ниже. Проще всего обзавестись им, скачав Haskell Platform, которая включает, помимо прочего, ещё и массу полезных библиотек. Для получения Haskell Platform нужно пойти на сайт http://hackage.haskell.org/platform/ и далее следовать инструкциям по вашей операционной системе.
GHC умеет компилировать сценарии на языке Haskell (обычно это файлы с расширением
Как только вы установите Haskell Platform, откройте новое окно терминала – если, конечно, используете Linux или Mac OS X. Если же у вас установлена Windows, запустите интерпретатор командной строки (ghci
и нажмите Enter. Если ваша система не найдёт программу GHCi, попробуйте перезагрузить компьютер.
Если вы определили несколько функций в сценарии, скажем, : l myfunctions
. Нужно только убедиться, что файл
Если вы изменили :l myfunctions
, чтобы загрузить его заново. Можно также перегрузить загруженный ранее сценарий с помощью команды : r
. Обычно я поступаю следующим образом: определяю несколько функций в
Благодарности
Благодарю всех, кто присылал мне свои замечания, предложения и слова поддержки. Также благодарю Кита, Сэма и Мэрилин, которые помогли мне отшлифовать мастерство писателя.
1
На старт, внимание, марш!
Отлично, давайте начнём! Если вы принципиально не читаете предисловий к книгам, в данном случае вам всё же придётся вернуться назад и заглянуть в заключительную часть введения: именно там рассказано, что вам потребуется для изучения данного руководства и для загрузки программ.
Первое, что мы сделаем, – запустим компилятор GHC в интерактивном режиме и вызовем несколько функций, чтобы «прочувствовать» язык Haskell – пока ещё в самых общих чертах. Откройте консоль и наберите ghci
. Вы увидите примерно такое приветствие:
GHCi, version 7.0.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude>
Поздравляю – вы в GHCi!
ПРИМЕЧАНИЕ. Приглашение консоли ввода – Prelude>
, но поскольку оно может меняться в процессе работы, мы будем использовать просто ghci>
. Если вы захотите, чтобы у вас было такое же приглашение, выполните команду :set prompt "ghci> "
.
Немного школьной арифметики: