Поиск по сайту:

Начало работы с языком программирования Haskell

Haskell — это продвинутый, чисто функциональный язык программирования общего назначения. В этом руководстве рассказывается, как установить Haskell и как начало работы с языком программирования Haskell в Linux и Unix-подобных операционных системах.

Haskell можно установить тремя способами; установка вручную, с использованием стека и платформы Haskell. Установка Haskell с использованием стека на данный момент является официально рекомендуемым и самым простым методом.

Установите стек инструментов Haskell

Haskell Tool Stack — это кроссплатформенная программа для создания проектов Haskell. Благодаря Haskell Stack мы получаем комплексную среду разработки для Haskell. Используя стек инструментов Haskell, мы можем легко установить следующие компоненты:

  • Stack: конструктор проектов Haskell, состоящих из нескольких пакетов.
  • GHC: компилятор и интерпретатор программ Haskell.
  • Haddock: генератор документации для пакетов Haskell,
  • И тысячи пакетов могут быть установлены по требованию.

Сначала давайте установим стек Haskell с помощью команды:

wget -qO- https://get.haskellstack.org/ | sh

Или,

curl -sSL https://get.haskellstack.org/ | sh

Приведенные выше команды загрузят последнюю версию стека и сразу же установят ее.

Эти команды одинаковы почти для всех дистрибутивов Linux и FreeBSD. Однако сообщество Arch поддерживает официальную версию в репозитории [community]. Итак, если вы используете Arch Linux и/или любую другую систему на базе Arch, просто запустите следующую команду, чтобы установить последнюю стабильную версию Stack.

sudo pacman -S stack

После установки выполните следующую команду, чтобы включить в переменную среды PATH $HOME/.local/bin:

echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc

Обновляет изменения, внесенные в файл ~/.bashrc, с помощью команды:

source ~/.bashrc

Давайте посмотрим установленную версию Stack:

$ stack --version
Version 1.6.1, Git revision f25811329bbc40b0c21053a8160c56f923e1201b (5435 commits) x86_64 hpack-0.20.0

Чтобы обновить стек в любое время, просто запустите:

stack upgrade

Чтобы обновить индекс пакета, запустите:

stack update

Мы установили стек. Давайте продолжим и создадим новый проект.

Начало работы с языком программирования Haskell

Настройка нового проекта

Чтобы запустить наш новый проект, нам нужны некоторые файлы, такие как исходный код Haskell, package.yaml, stack.yaml, файл .cabal и несколько других каталогов. Мы можем создать эти файлы вручную. Однако в Haskell имеется множество предопределенных шаблонов. Таким образом, мы можем использовать его вместо того, чтобы создавать его вручную.

Чтобы просмотреть все доступные шаблоны, запустите:

stack templates

Теперь я собираюсь создать новый проект под названием "ostechnix" и использовать "new-template". Для этого запустите:

stack new ostechnix new-template

Пример вывода будет:

Downloading template "new-template" to create project "ostechnix" in ostechnix/ ...

The following parameters were needed by the template but not provided: author-email, author-name, category, copyright, github-username
You can provide them in /home/sk/.stack/config.yaml, like this:
templates:
 params:
 author-email: value
 author-name: value
 category: value
 copyright: value
 github-username: value
Or you can pass each one as parameters like this:
stack new ostechnix new-template -p "author-email:value" -p "author-name:value" -p "category:value" -p "copyright:value" -p "github-username:value"

Looking for .cabal or package.yaml files to use to init the project.
Using cabal packages:
- ostechnix/

Selecting the best among 12 snapshots...

Downloaded lts-10.0 build plan. 
Populated index cache. 
* Matches lts-10.0

Selected resolver: lts-10.0
Initialising configuration using resolver: lts-10.0
Total number of user packages considered: 1
Writing configuration to file: ostechnix/stack.yaml
All done.

Установка ГХК

Перейдите в каталог вновь созданного проекта, запустите загрузку «stack setup» и установите необходимый компилятор.

cd ostechnix/
stack setup

Эта команда установит правильный компилятор GHC в ваш новый проект Haskell. GHC будет установлен в изолированном месте. Это означает, что это не помешает какой-либо установке на уровне системы.

Обратите внимание, что GHC будет установлен в корневой каталог вашего глобального стека. Таким образом, вы не можете просто вызвать его из своей оболочки с помощью команды ghc. Вместо этого рассмотрите возможность использования: stack ghc, stack ghci, stack runghc или stack exec. Для получения дополнительной информации о путях запустите:

stack path

и..

stack exec env

Теперь мы создали новый проект и установили правильный компилятор для нашего проекта. Пришло время его построить.

Строительный проект

Чтобы собрать проект, запустите:

stack build

Убедитесь, что вы запускаете эту команду внутри каталога вашего проекта. После завершения сборки запустите исполняемый файл с помощью команды:

stack exec ostechnix-exe

Пример вывода будет:

someFunc

Обратите внимание, что исполняемый файл «ostechnix-exe» будет скрыт в каталоге ./.stack-work основного каталога вашего проекта.

Игра с Хаскеллом

Откройте компилятор ghci:

stack exec ghci

Или,

stack exec -- ghci

Вы попадете в командную строку ghci.

GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help
Prelude>

Как и все остальные, начнем с «Привет, мир!».

Prelude> "hello world!"
"hello world!"

Давайте попробуем выполнить некоторые арифметические действия.

Prelude> 14+90
104
Prelude> 14-90
-76
Prelude> 34/2
17.0

Некоторые сложные операции:

Prelude> (67*98) - 50 - (24-2)
6494

Давайте выясним, какое число больше или меньше:

Prelude> max 34 17
34
Prelude> min 45 98
45

Найдите преемника:

Prelude> succ 89
90

Найдите данные входные данные равны или нет:

Prelude> 10 == 10
True
Prelude> 10 == 20
False
Prelude> "ostechnix" == "ostechnix"
True
Prelude> "ostechnix" == "windows"
False

Также легко использовать логические значения, как показано ниже:

Prelude> True && False
False
Prelude> True && True
True
Prelude> False || True
True
Prelude> False && False
False

По умолчанию имя приглашения — Prelude>. Вы можете изменить это значение на другое, например, ghci>, набрав:

:set prompt "ghci> "

Для помощи введите:

:?

Чтобы выйти, введите:

:quit

Или,

:q

Обратите внимание, что нам не нужно создавать каталог проекта. Мы можем начать работу со Stack, просто запустив stack ghci из оболочки. Он загрузит правильную версию GHC и вы попадете в командную строку prelude>.

Компиляция и запуск кода Haskell

Запустить код Haskell легко. Проверьте следующий пример.

Создайте файл под названием "ostechnix.hs" со следующим содержимым.

#!/usr/bin/env stack
-- stack --install-ghc runghc

main :: IO ()
main = putStrLn "Welcome To OSTechNix"

Теперь вы можете запустить эту программу с помощью команды:

$ stack ostechnix.hs 
Welcome To OSTechNix

Вот еще один пример.

Создайте программу на Haskell с именем myhaskell.hs со следующим кодом:

module Main where

main :: IO ()
main = putStrLn "Welcome To OSTechNix!"

Затем скомпилируйте его с помощью команды:

stack exec -- ghc myhaskell.hs -o test.hs

Пример вывода будет:

[1 of 1] Compiling Main ( myhaskell.hs, myhaskell.o )
Linking ostechnix.hs ...

Наконец, запустите его, как показано ниже:

./test.hs 
Welcome To OSTechNix!

Мы только что рассмотрели основы. Нам еще многому предстоит научиться! Если вам интересно узнать больше о программировании на Haskell, обратитесь к следующим ресурсам, чтобы изучить Haskell от основ до продвинутого уровня.

  • Руководства по Haskell
  • Изучите навык
  • Реальный Haskell
  • Попробуйте Haskell в своем браузере
  • Официальная вики Haskell

Статьи по данной тематике