learnhaskell/guide-ru.md

122 lines
6.2 KiB
Markdown
Raw Normal View History

2015-07-29 04:06:38 +00:00
# Как познать Haskell
2015-07-29 05:49:43 +00:00
Этот документ - рекомендованный путь к изучению языка Haskell, основанный на опыте помощи другим
2015-07-29 04:06:38 +00:00
2015-07-29 05:49:43 +00:00
## Это руководство доступно на других языках:
2015-07-29 04:06:38 +00:00
* [In English](README.md)
* [Auf Deutsch](guide-de.md)
<!-- * [Στην ελληνική](guide-el.md) -->
* [En Español](guide-es.md)
* [En Français](guide-fr.md)
* [In Italiano](guide-it.md)
* [Em Português](guide-pt.md)
* [繁體中文](guide-zh_tw.md)
2015-07-29 05:49:43 +00:00
#### *Не страдайте над одним топиком, который вы не можете понять сразу*. Двигайтесь дальше!
2015-07-29 04:06:38 +00:00
## Сообщество
IRC канал `#haskell-beginners` на Freenode.
IRC веб-клиент [здесь](http://webchat.freenode.net/).
[Почтовые рассылки](https://wiki.haskell.org/Mailing_lists).
2015-07-29 05:49:43 +00:00
### Политика сообщества
[Смотрите пост про обучение от Криса Дона](http://chrisdone.com/posts/teaching)
Будьте дружелюбны и вежливы. Грубость и хамство испугает собеседника
и отталкнет от участия в общении.
Слабая, неконструктивная критика удовлетворяет лишь
критикующего, но не помогает критикуемому.
Не описывайте вещи как "легкие" или "тривиальные".
Вы заставляете людей чувствовать себя ужасно за то,
что они усердно и много работают ради своего прогресса.
Медленно-обучающиеся люди зачастую самые дотошные обучающиеся,
этому наоборот надо радоваться!
Не симулируйте удивление. Не изображайте удивление, когда кто-либо
говорит, что он не знает что-то. Они будут чувствовать себя ужасно,
а вы не получите ничего, кроме резкости.
"ну, на самом деле". Когда кто-либо говорит что-то почти -
но не совсем - верное,
а вы говорите "ну, на самом деле..." и даете лишь мелкую правку.
Это особенно раздражает, когда поправка не относится к основной
теме разговора. Это не значит,
что этот канал не про поиск правды или что нам все равно на точность.
Просто почти все "ну, на самом деле" являются показухой, а не поиском правды.
Не делайте всю работу за обучающегося.
Если вы ввидите, что человек работает над проблемой,
вы не должны немедлено выдавать советы или готовые решения.
Дайте ему поработать и поизучать,
пока он сам не попросит помощи.
Избегать помех - [одна из основных причин существования #haskell-beginners](http://chrisdone.com/posts/teaching).
Никаких -измов. Расизм, сексизм, гомофобия,
трансофобия и другие виды фобий не приветствуются и не будут приняты терпимо.
---
[Правила хорошего тона от Recurse Center](https://www.recurse.com/manual). Спасибо за их публикацию Recurse Center.
# Что такое Haskell, GHC и Cabal?
Haskell - это язык программирования, изложенный в спецификациях,
последняя опубликована в 2010 году.
Эта спецификация доступна как [онлайн-документ](http://www.haskell.org/onlinereport/haskell2010/).
## GHC
[GHC](http://www.haskell.org/ghc/) - это самый популярный способ работы с языком Haskell. Он включает в себя компилятор, REPL (интерпритатор), пакетный менеджер и другие полезные вещи.
## Cabal
[Cabal](https://www.haskell.org/cabal/download.html) осуществляет менеджмент проектов и разрешение зависимостей.
Это способ установить проект, обычно в их песочницу (изолированное окружение).
Cabal аналогичен Bundler в Ruby, pip в Python, NPM в Node и так далее. GHC управляет пакетами сам, Cabal решает какие версии устанавливать.
# Установка GHC и Cabal
## Ubuntu
[Этот PPA](http://launchpad.net/~hvr/+archive/ghc) лучший и именно его я использую на
всех моих серверах и локальных машинах с Linux.
А именно:
```bash
$ sudo apt-get update
$ sudo apt-get install python-software-properties # v12.04 and below
$ sudo apt-get install software-properties-common # v12.10 and above
$ sudo add-apt-repository -y ppa:hvr/ghc
$ sudo apt-get update
$ sudo apt-get install cabal-install-1.22 ghc-7.8.4 happy-1.19.5 alex-3.1.4
```
После этого, добавьте следующие пути к вашему `$PATH` (bash\_profile, zshrc, bashrc, и тп):
```
export PATH=$PATH:~/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.8.4/bin:/opt/happy/1.19.5/bin:/opt/alex/3.1.4/bin
```
*Опционально:* вы можете добавить также `.cabal-sandbox/bin` к вашему пути.
Код, который вы разрабатываете будет доступен вам из командной строки.
Это работает только тогда, когда ваша текущая рабочая папка - песочница cabal.