Учитель Начальной – Курс Хаскель от джуна до мидла (страница 2)
• Документация GHC и Hoogle (поиск по типам и функциям).
• Reddit r/haskell, Haskell Discourse, Telegram-чаты.
В следующей главе мы настроим окружение и напишем первую программу.
Упражнения к главе 1
1. Объясните своими словами, чем чистая функция отличается от процедуры с побочными эффектами.
2. Приведите 3 примера задач, которые удобнее решать функционально, чем императивно.
3. Найдите в интернете 5 компаний, которые используют Haskell в продакшене, и кратко опишите, для чего.
ГЛАВА 2. УСТАНОВКА ОКРУЖЕНИЯ, GHCI И ПЕРВЫЙ КОД
2.1. Установка GHC и инструментов
Рекомендуемый способ в 2024–2026 годах — использовать GHCup.
На Linux / macOS:
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
После установки доступны команды:
• ghcup — менеджер версий
• ghc — компилятор
• ghci — интерактивная оболочка (REPL)
• cabal — система сборки
• stack — альтернативная система сборки (многие до сих пор предпочитают)
Проверка:
ghc --version
ghci
На Windows лучше использовать официальный установщик или WSL2 + GHCup.
2.2. Первый запуск GHCi
Открываем терминал и пишем:
$ ghci
GHCi, version 9.6.x: https://www.haskell.org/ghc/ :? for help
Prelude>
Prelude — это стандартный модуль, который загружается по умолчанию.
Простые вычисления:
Prelude> 2 + 2
4
Prelude> 7 * 8
56
Prelude> 2 ^ 10
1024
Prelude> sqrt 16
4.0
Prelude> pi
3.141592653589793
Строки:
Prelude> "Hello, " ++ "Haskell!"
"Hello, Haskell!"
Логика:
Prelude> True && False
False
Prelude> True || False
True
Prelude> not True
False
2.3. Основные команды GHCi
:t выражение — показать тип
:i имя — информация о типе/классе/функции
:l файл.hs — загрузить файл
:r — перезагрузить последний файл
:q — выход
:? — справка
:set +t — показывать типы результатов
:set prompt "λ> " — красивый промпт
Пример:
Prelude> :t 5
5 :: Num a => a
Prelude> :t "hello"
"hello" :: String
Prelude> :t True
True :: Bool