×
Traktatov.net » Изучай Haskell во имя добра! » Читать онлайн
Страница 5 из 245 Настройки

Как только вы установите 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, экспериментирую с функциями, изменяю файл, перезагружаю его и затем всё повторяю. Собственно, именно этим мы с вами и займёмся.

Благодарности

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

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> ".

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

>ghci> 2 + 15 17

>ghci> 49 * 100

>4900

>ghci> 1892 – 1472 420

>ghci> 5 / 2

>2.5

Код говорит сам за себя. Также в одной строке мы можем использовать несколько операторов; при этом работает обычный порядок вычислений. Можно использовать и круглые скобки для облегчения читаемости кода или для изменения порядка вычислений:

>ghci> (50 * 100) – 4999 1

>ghci> 50 * 100 – 4999

>1

>ghci> 50 * (100 – 4999)

>–244950

Здорово, правда? Чувствую, вы со мной не согласны, но немного терпения! Небольшая опасность кроется в использовании отрицательных чисел. Если нам захочется использовать отрицательные числа, то всегда лучше заключить их в скобки. Попытка выполнения >5 * –3 приведёт к ошибке, зато >5 * (–3) сработает как надо.

Булева алгебра в Haskell столь же проста. Как и во многих других языках программирования, в Haskell имеется два логических значения