Fix mdash

pull/80/head
Roman Shamin 9 years ago
parent 0faf54968b
commit 3f43e58863

@ -1,6 +1,6 @@
# Как познать 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 - это язык программирования, изложенный в спецификациях,
Haskell — это язык программирования, изложенный в спецификациях,
последняя версия которых опубликована в 2010 году.
Эта спецификация доступна как [онлайн-документ](http://www.haskell.org/onlinereport/haskell2010/).
## GHC
[GHC](http://www.haskell.org/ghc/) - это самый популярный способ работы с языком Haskell. Он включает в себя компилятор, REPL (интерпретатор), пакетный менеджер и другие полезные вещи.
[GHC](http://www.haskell.org/ghc/) — это самый популярный способ работы с языком Haskell. Он включает в себя компилятор, REPL (интерпретатор), пакетный менеджер и другие полезные вещи.
## 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.
Это работает только тогда, когда ваша текущая рабочая папка — песочница cabal.
## Debian
@ -210,7 +210,7 @@ PATH=$PATH:$HOME/.cabal/bin
alias cabal="$HOME/.cabal/bin/cabal"
```
Если вы не знаете, какая оболочка у вас используется, то скорее всего это Bash. Если это Bash, то файл, в который вам надо добавлять эти строки - `~/.bashrc`. Если вы используете Z-shell, то это `~/.zshrc`. Вы можете понять, какая оболочка у вас используется, запустив:
Если вы не знаете, какая оболочка у вас используется, то скорее всего это Bash. Если это Bash, то файл, в который вам надо добавлять эти строки — `~/.bashrc`. Если вы используете Z-shell, то это `~/.zshrc`. Вы можете понять, какая оболочка у вас используется, запустив:
```bash
echo $SHELL | xargs basename
@ -427,7 +427,7 @@ Writer, State) для себя, чтобы понять их лучше. Зат
- [Этот рассказ](https://vimeo.com/73648150) от Tony отлично мотивирует трансформеры монад
, [слайды](https://dl.dropboxusercontent.com/u/7810909/talks/monad-transformers/cbaa991e0eb49224eb286c1e418e2b9828e1fb21/monad-transformers.pdf).
Также, реализуйте `Control.Monad`. Функции типа `mapM` или `sequence` - хорошая
Также, реализуйте `Control.Monad`. Функции типа `mapM` или `sequence` — хорошая
возможность попрактиковаться в написании общего кода монад.
Курс NICTA может быть использован как руководство для этого, он также включает написание
@ -462,7 +462,7 @@ Writer, State) для себя, чтобы понять их лучше. Зат
## Парсинг и генерация JSON
Aeson - это стандартное решение для парсинга [JSON](https://json.org) в Haskell.
Aeson — это стандартное решение для парсинга [JSON](https://json.org) в Haskell.
Доступно из [hackage](https://hackage.haskell.org/package/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).
- [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).
@ -620,21 +620,21 @@ cabal haddock --hoogle --hyperlink-source \
Мы обладаем огромными богатствами! Есть три основных вещи, которые я рекомендую:
* [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)
Haste с примером проекта.
* [GHCJS](https://github.com/ghcjs/ghcjs)
- [GHCJS Introduction](http://weblog.luite.com/wordpress/?p=14)
- [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/)
 — [GHCJS Introduction](http://weblog.luite.com/wordpress/?p=14)
 — [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/)
* [PureScript](http://www.purescript.org/)
- Не совсем Haskell как Haste или GHCJS, но популярный выбор многих пользователей Haskell
- Написан и вдохновлен языком Haskell
- Попробуйте purescript в вашем браузере [здесь](http://try.purescript.org/)
- Отличное руководство для [начала](http://www.christopherbiscardi.com/2014/06/22/getting-started-with-purescript/)
 — Не совсем Haskell как Haste или GHCJS, но популярный выбор многих пользователей Haskell
 — Написан и вдохновлен языком Haskell
 — Попробуйте purescript в вашем браузере [здесь](http://try.purescript.org/)
 — Отличное руководство для [начала](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/)
- [Don't fear the cat](http://fho.f12n.de/posts/2014-05-07-dont-fear-the-cat.html) -
Хорошая демонстрация того, как hylomorphism, это композиция из cata и ana.
- [Don't fear the cat](http://fho.f12n.de/posts/2014-05-07-dont-fear-the-cat.html) — хорошая демонстрация того, как 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)

Loading…
Cancel
Save