В Haskell есть очень хорошая система типов, которая умеет автоматически делать вывод типов. Это означает, что вам не нужно описывать тип в каждом куске кода, потому что система типов может вычислить это сама. Если, скажем, a = 5 + 4, то вам нет необходимости говорить, что a – число, так как это может быть выведено автоматически. Вывод типов делает ваш код более универсальным. Если функция принимает два параметра и складывает их, а тип параметров не задан явно, то функция будет работать с любыми двумя параметрами, которые ведут себя как числа.

Haskell – ясный и выразительный язык, потому что он использует множество высокоуровневых идей; программы обычно короче, чем их императивные эквиваленты, их легче сопровождать, в них меньше ошибок.

Язык Haskell был придуман несколькими по-настоящему умными ребятами (с диссертациями). Работа по его созданию началась в 1987 году, когда комитет исследователей задался целью изобрести язык, который станет настоящей сенсацией. В 1999 году было опубликовано описание языка (Haskell Report), ознаменовавшее появление первой официальной его версии.

<p>Что понадобится для изучения языка</p>

Если коротко, то для начала понадобятся текстовый редактор и компилятор Haskell. Вероятно, у вас уже установлен любимый редактор, так что не будем заострять на этом внимание. На сегодняшний день самым популярным компилятором Haskell является GHC (Glasgow Haskell Compiler), который мы и будем использовать в примерах ниже. Проще всего обзавестись им, скачав Haskell Platform, которая включает, помимо прочего, ещё и массу полезных библиотек. Для получения Haskell Platform нужно пойти на сайт http://hackage.haskell.org/platform/ и далее следовать инструкциям по вашей операционной системе.

GHC умеет компилировать сценарии на языке Haskell (обычно это файлы с расширением .hs), а также имеет интерактивный режим работы, в котором можно загрузить функции из файлов сценариев, вызвать их и тут же получить результаты. Во время обучения такой подход намного проще и эффективнее, чем перекомпиляция сценария при каждом его изменении, а затем ещё и запуск исполняемого файла.

Как только вы установите Haskell Platform, откройте новое окно терминала – если, конечно, используете Linux или Mac OS X. Если же у вас установлена Windows, запустите интерпретатор командной строки (cmd.exe). Далее введите ghci и нажмите Enter. Если ваша система не найдёт программу GHCi, попробуйте перезагрузить компьютер.

Если вы определили несколько функций в сценарии, скажем, myfunctions.hs, то их можно загрузить в GHCi, напечатав команду : l myfunctions. Нужно только убедиться, что файл myfunctions.hs находится в том же каталоге, из которого вы запустили GHCi.

Если вы изменили hs-сценарий, введите в интерактивном режиме :l myfunctions, чтобы загрузить его заново. Можно также перегрузить загруженный ранее сценарий с помощью команды : r. Обычно я поступаю следующим образом: определяю несколько функций в hs-файле, загружаю его в GHCi, экспериментирую с функциями, изменяю файл, перезагружаю его и затем всё повторяю. Собственно, именно этим мы с вами и займёмся.

<p>Благодарности</p>

Благодарю всех, кто присылал мне свои замечания, предложения и слова поддержки. Также благодарю Кита, Сэма и Мэрилин, которые помогли мне отшлифовать мастерство писателя.

<p>1</p><p>На старт, внимание, марш!</p>

Отлично, давайте начнём! Если вы принципиально не читаете предисловий к книгам, в данном случае вам всё же придётся вернуться назад и заглянуть в заключительную часть введения: именно там рассказано, что вам потребуется для изучения данного руководства и для загрузки программ.

Первое, что мы сделаем, – запустим компилятор 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> ".

Немного школьной арифметики:

Перейти на страницу:

Похожие книги