From 3f43e58863bd12f84d5caecc0325ca65c0241d31 Mon Sep 17 00:00:00 2001 From: Roman Shamin Date: Fri, 7 Aug 2015 10:20:18 +0300 Subject: [PATCH] Fix mdash --- guide-ru.md | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/guide-ru.md b/guide-ru.md index 3f84d76..5eec6e4 100644 --- a/guide-ru.md +++ b/guide-ru.md @@ -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)