mirror of
https://github.com/bitemyapp/learnhaskell.git
synced 2024-11-07 15:20:21 +00:00
Fix mdash
This commit is contained in:
parent
0faf54968b
commit
3f43e58863
43
guide-ru.md
43
guide-ru.md
@ -1,6 +1,6 @@
|
|||||||
# Как познать Haskell
|
# Как познать Haskell
|
||||||
|
|
||||||
Этот документ - рекомендованный путь к изучению языка Haskell, основанный на опыте помощи другим
|
Этот документ — рекомендованный путь к изучению языка Haskell, основанный на опыте помощи другим
|
||||||
|
|
||||||
## Это руководство доступно на других языках:
|
## Это руководство доступно на других языках:
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ IRC веб-клиент [здесь](http://webchat.freenode.net/).
|
|||||||
а вы не получите ничего, кроме резкости.
|
а вы не получите ничего, кроме резкости.
|
||||||
|
|
||||||
"ну, на самом деле". Когда кто-либо говорит что-то почти -
|
"ну, на самом деле". Когда кто-либо говорит что-то почти -
|
||||||
но не совсем - верное,
|
но не совсем — верное,
|
||||||
а вы говорите "ну, на самом деле..." и даете лишь мелкую правку.
|
а вы говорите "ну, на самом деле..." и даете лишь мелкую правку.
|
||||||
Это особенно раздражает, когда поправка не относится к основной
|
Это особенно раздражает, когда поправка не относится к основной
|
||||||
теме разговора. Это не значит,
|
теме разговора. Это не значит,
|
||||||
@ -64,7 +64,7 @@ IRC веб-клиент [здесь](http://webchat.freenode.net/).
|
|||||||
вы не должны немедлено выдавать советы или готовые решения.
|
вы не должны немедлено выдавать советы или готовые решения.
|
||||||
Дайте ему поработать и поизучать,
|
Дайте ему поработать и поизучать,
|
||||||
пока он сам не попросит помощи.
|
пока он сам не попросит помощи.
|
||||||
Избегать помех - [одна из основных причин существования #haskell-beginners](http://chrisdone.com/posts/teaching).
|
Избегать помех — [одна из основных причин существования #haskell-beginners](http://chrisdone.com/posts/teaching).
|
||||||
|
|
||||||
Никаких -измов. Расизм, сексизм, гомофобия,
|
Никаких -измов. Расизм, сексизм, гомофобия,
|
||||||
трансофобия и другие виды фобий не приветствуются и не будут приняты терпимо.
|
трансофобия и другие виды фобий не приветствуются и не будут приняты терпимо.
|
||||||
@ -75,13 +75,13 @@ IRC веб-клиент [здесь](http://webchat.freenode.net/).
|
|||||||
|
|
||||||
# Что такое Haskell, GHC и Cabal?
|
# Что такое Haskell, GHC и Cabal?
|
||||||
|
|
||||||
Haskell - это язык программирования, изложенный в спецификациях,
|
Haskell — это язык программирования, изложенный в спецификациях,
|
||||||
последняя версия которых опубликована в 2010 году.
|
последняя версия которых опубликована в 2010 году.
|
||||||
Эта спецификация доступна как [онлайн-документ](http://www.haskell.org/onlinereport/haskell2010/).
|
Эта спецификация доступна как [онлайн-документ](http://www.haskell.org/onlinereport/haskell2010/).
|
||||||
|
|
||||||
## GHC
|
## GHC
|
||||||
|
|
||||||
[GHC](http://www.haskell.org/ghc/) - это самый популярный способ работы с языком Haskell. Он включает в себя компилятор, REPL (интерпретатор), пакетный менеджер и другие полезные вещи.
|
[GHC](http://www.haskell.org/ghc/) — это самый популярный способ работы с языком Haskell. Он включает в себя компилятор, REPL (интерпретатор), пакетный менеджер и другие полезные вещи.
|
||||||
|
|
||||||
## Cabal
|
## Cabal
|
||||||
|
|
||||||
@ -121,7 +121,7 @@ export PATH=$PATH:~/.cabal/bin:/opt/cabal/1.22/bin:/opt/ghc/7.8.4/bin:/opt/happy
|
|||||||
|
|
||||||
*Опционально:* вы можете добавить также `.cabal-sandbox/bin` к вашему пути.
|
*Опционально:* вы можете добавить также `.cabal-sandbox/bin` к вашему пути.
|
||||||
Код, который вы разрабатываете, будет доступен вам из командной строки.
|
Код, который вы разрабатываете, будет доступен вам из командной строки.
|
||||||
Это работает только тогда, когда ваша текущая рабочая папка - песочница cabal.
|
Это работает только тогда, когда ваша текущая рабочая папка — песочница cabal.
|
||||||
|
|
||||||
## Debian
|
## Debian
|
||||||
|
|
||||||
@ -210,7 +210,7 @@ PATH=$PATH:$HOME/.cabal/bin
|
|||||||
alias cabal="$HOME/.cabal/bin/cabal"
|
alias cabal="$HOME/.cabal/bin/cabal"
|
||||||
```
|
```
|
||||||
|
|
||||||
Если вы не знаете, какая оболочка у вас используется, то скорее всего это Bash. Если это Bash, то файл, в который вам надо добавлять эти строки - `~/.bashrc`. Если вы используете Z-shell, то это `~/.zshrc`. Вы можете понять, какая оболочка у вас используется, запустив:
|
Если вы не знаете, какая оболочка у вас используется, то скорее всего это Bash. Если это Bash, то файл, в который вам надо добавлять эти строки — `~/.bashrc`. Если вы используете Z-shell, то это `~/.zshrc`. Вы можете понять, какая оболочка у вас используется, запустив:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
echo $SHELL | xargs basename
|
echo $SHELL | xargs basename
|
||||||
@ -427,7 +427,7 @@ Writer, State) для себя, чтобы понять их лучше. Зат
|
|||||||
- [Этот рассказ](https://vimeo.com/73648150) от Tony отлично мотивирует трансформеры монад
|
- [Этот рассказ](https://vimeo.com/73648150) от Tony отлично мотивирует трансформеры монад
|
||||||
, [слайды](https://dl.dropboxusercontent.com/u/7810909/talks/monad-transformers/cbaa991e0eb49224eb286c1e418e2b9828e1fb21/monad-transformers.pdf).
|
, [слайды](https://dl.dropboxusercontent.com/u/7810909/talks/monad-transformers/cbaa991e0eb49224eb286c1e418e2b9828e1fb21/monad-transformers.pdf).
|
||||||
|
|
||||||
Также, реализуйте `Control.Monad`. Функции типа `mapM` или `sequence` - хорошая
|
Также, реализуйте `Control.Monad`. Функции типа `mapM` или `sequence` — хорошая
|
||||||
возможность попрактиковаться в написании общего кода монад.
|
возможность попрактиковаться в написании общего кода монад.
|
||||||
|
|
||||||
Курс NICTA может быть использован как руководство для этого, он также включает написание
|
Курс NICTA может быть использован как руководство для этого, он также включает написание
|
||||||
@ -462,7 +462,7 @@ Writer, State) для себя, чтобы понять их лучше. Зат
|
|||||||
|
|
||||||
## Парсинг и генерация JSON
|
## Парсинг и генерация JSON
|
||||||
|
|
||||||
Aeson - это стандартное решение для парсинга [JSON](https://json.org) в Haskell.
|
Aeson — это стандартное решение для парсинга [JSON](https://json.org) в Haskell.
|
||||||
Доступно из [hackage](https://hackage.haskell.org/package/aeson) и
|
Доступно из [hackage](https://hackage.haskell.org/package/aeson) и
|
||||||
[github](https://github.com/bos/aeson).
|
[github](https://github.com/bos/aeson).
|
||||||
|
|
||||||
@ -481,7 +481,7 @@ Aeson - это стандартное решение для парсинга [JS
|
|||||||
|
|
||||||
- [Inductive graphs and Functional Graph Algorithms](http://web.engr.oregonstate.edu/~erwig/papers/abstracts.html#JFP01).
|
- [Inductive graphs and Functional Graph Algorithms](http://web.engr.oregonstate.edu/~erwig/papers/abstracts.html#JFP01).
|
||||||
|
|
||||||
- [FGL/Haskell - A Functional Graph Library](http://web.engr.oregonstate.edu/~erwig/fgl/haskell/old/fgl0103.pdf).
|
- [FGL/Haskell — A Functional Graph Library](http://web.engr.oregonstate.edu/~erwig/fgl/haskell/old/fgl0103.pdf).
|
||||||
|
|
||||||
- [Data.Graph source from Containers package](http://hackage.haskell.org/package/containers-0.5.5.1/docs/Data-Graph.html).
|
- [Data.Graph source from Containers package](http://hackage.haskell.org/package/containers-0.5.5.1/docs/Data-Graph.html).
|
||||||
|
|
||||||
@ -620,21 +620,21 @@ cabal haddock --hoogle --hyperlink-source \
|
|||||||
Мы обладаем огромными богатствами! Есть три основных вещи, которые я рекомендую:
|
Мы обладаем огромными богатствами! Есть три основных вещи, которые я рекомендую:
|
||||||
|
|
||||||
* [Haste](http://haste-lang.org/) компилятор Haskell в JavaScript
|
* [Haste](http://haste-lang.org/) компилятор Haskell в JavaScript
|
||||||
- [Компилятор](https://github.com/valderman/haste-compiler) на github.
|
— [Компилятор](https://github.com/valderman/haste-compiler) на github.
|
||||||
- Отличное
|
— Отличное
|
||||||
[демо](http://www.airpair.com/haskell/posts/haskell-tutorial-introduction-to-web-apps)
|
[демо](http://www.airpair.com/haskell/posts/haskell-tutorial-introduction-to-web-apps)
|
||||||
Haste с примером проекта.
|
Haste с примером проекта.
|
||||||
|
|
||||||
* [GHCJS](https://github.com/ghcjs/ghcjs)
|
* [GHCJS](https://github.com/ghcjs/ghcjs)
|
||||||
- [GHCJS Introduction](http://weblog.luite.com/wordpress/?p=14)
|
— [GHCJS Introduction](http://weblog.luite.com/wordpress/?p=14)
|
||||||
- [Functional Reactive Web Interfaces with GHCJS and Sodium](http://weblog.luite.com/wordpress/?p=127)
|
— [Functional Reactive Web Interfaces with GHCJS and Sodium](http://weblog.luite.com/wordpress/?p=127)
|
||||||
- [Writing Atom plugins in Haskell using ghcjs ](http://edsko.net/2015/02/14/atom-haskell/)
|
— [Writing Atom plugins in Haskell using ghcjs ](http://edsko.net/2015/02/14/atom-haskell/)
|
||||||
|
|
||||||
* [PureScript](http://www.purescript.org/)
|
* [PureScript](http://www.purescript.org/)
|
||||||
- Не совсем Haskell как Haste или GHCJS, но популярный выбор многих пользователей Haskell
|
— Не совсем Haskell как Haste или GHCJS, но популярный выбор многих пользователей Haskell
|
||||||
- Написан и вдохновлен языком Haskell
|
— Написан и вдохновлен языком Haskell
|
||||||
- Попробуйте purescript в вашем браузере [здесь](http://try.purescript.org/)
|
— Попробуйте purescript в вашем браузере [здесь](http://try.purescript.org/)
|
||||||
- Отличное руководство для [начала](http://www.christopherbiscardi.com/2014/06/22/getting-started-with-purescript/)
|
— Отличное руководство для [начала](http://www.christopherbiscardi.com/2014/06/22/getting-started-with-purescript/)
|
||||||
|
|
||||||
## Какой фронтенд язык мне использовать?
|
## Какой фронтенд язык мне использовать?
|
||||||
|
|
||||||
@ -706,10 +706,9 @@ catamorphisms). Знание о том, как реализовать unfold (an
|
|||||||
|
|
||||||
- [An introduction to recursion schemes](http://patrickthomson.ghost.io/an-introduction-to-recursion-schemes/)
|
- [An introduction to recursion schemes](http://patrickthomson.ghost.io/an-introduction-to-recursion-schemes/)
|
||||||
|
|
||||||
- [Don't fear the cat](http://fho.f12n.de/posts/2014-05-07-dont-fear-the-cat.html) -
|
- [Don't fear the cat](http://fho.f12n.de/posts/2014-05-07-dont-fear-the-cat.html) — хорошая демонстрация того, как hylomorphism, это композиция из cata и ana.
|
||||||
Хорошая демонстрация того, как hylomorphism, это композиция из cata и ana.
|
|
||||||
|
|
||||||
- [Recursion Schemes](http://comonad.com/reader/2009/recursion-schemes/) - это
|
- [Recursion Schemes](http://comonad.com/reader/2009/recursion-schemes/) — это
|
||||||
руководство просто замечательно!
|
руководство просто замечательно!
|
||||||
|
|
||||||
- [Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire](http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf)
|
- [Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire](http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf)
|
||||||
|
Loading…
Reference in New Issue
Block a user