More more fixes

pull/80/head
Roman Shamin 9 years ago
parent a65273df08
commit e98cf820b1

@ -33,7 +33,7 @@ IRC канал `#haskell-beginners` на Freenode.
### Политика сообщества
[Смотрите пост про обучение от Криса Дона](http://chrisdone.com/posts/teaching)
[Смотрите пост про обучение от Криса Дона](http://chrisdone.com/posts/teaching).
Будьте дружелюбны и вежливы. Грубость и хамство испугает собеседника
и оттолкнет от участия в общении.
@ -234,7 +234,7 @@ $ cabal install alex happy
Оно предоставляет инструкции, как добавить GHC и Cabal в ваш путь,
после того как вы скопируете приложение `.app` куда-либо.
### 10.6-10.8
### 10.610.8
Выполните установку бинарников, которая описана ниже,
для [этого архива](https://www.haskell.org/platform/download/2014.2.0.0/ghc-7.8.3-x86_64-apple-darwin-r3.tar.bz2).
@ -249,7 +249,7 @@ $ cabal install alex happy
## Пользователям других Linux дистрибутивов
Скачайте последние бинарники cabal и ghc:
Скачайте последние бинарники Cabal и GHC:
- [GHC](http://www.haskell.org/ghc/).
@ -312,7 +312,7 @@ $ cabal install cabal-install alex happy
cs240h доступен [онлайн](http://www.scs.stanford.edu/14sp-cs240h/).
Это онлайн курс от [Bryan O'Sullivan](https://github.com/bos), который он преподает в Стенфорде.
Это онлайн курс от [Bryan OSullivan](https://github.com/bos), который он преподает в Стенфорде.
Если вы не знаете кто он такой, взгляните на половину библиотек,
от которых зависят все приложения на Haskell, и вы увидите его имя в их авторах.
Если вы уже закончили курс Yorgey, особого внимания в этом курсе заслуживают разделы о фантомных типах, контроле потоков информации, расширениях языка, конкурентном выполнении, pipes и линзах.
@ -357,7 +357,7 @@ cs240h доступен [онлайн](http://www.scs.stanford.edu/14sp-cs240h/)
- [Oh my laziness!](http://alpmestan.com/posts/2013-10-02-oh-my-laziness.html)
- SO вопрос '[Does haskell have laziness?](http://stackoverflow.com/questions/13042353/does-haskell-have-tail-recursive-optimization)'
- Вопрос на Stack Overflow — [Does haskell have laziness?](http://stackoverflow.com/questions/13042353/does-haskell-have-tail-recursive-optimization)
- Слайды [Johan Tibell](https://github.com/tibbe) из доклада
[reasoning about laziness](http://www.slideshare.net/tibbe/reasoning-about-laziness).
@ -392,7 +392,7 @@ let a = 1 * a -- not guarded, (*) is strict
Перевод:
<!-- TODO: I don't really understand this, so I can't translate properly -->
<!-- TODO: I dont really understand this, so I cant translate properly -->
> Интересное замечание: GHC должен скрывать отображение токена статуса поздаи
> абстрактного типа IO, потому что токен статуса должен все время быть использован
> линейно (не быть дуплицирован или сброшен), но система типов не может принудительно
@ -404,9 +404,9 @@ let a = 1 * a -- not guarded, (*) is strict
> Interesting side note: GHC needs to hide the state token representation behind
> an abstract IO type because the state token must always be used linearly (not
> duplicated or dropped), but the type system can't enforce this. Clean, another
> duplicated or dropped), but the type system cant enforce this. Clean, another
> lazy Haskell-like language, has uniqueness types (which are like linear types
> and possibly different in ways I'm not aware of), and they expose the
> and possibly different in ways Im not aware of), and they expose the
> World-passing directly and provide a (non-abstract) IO monad only for
> convenience.
@ -418,13 +418,12 @@ let a = 1 * a -- not guarded, (*) is strict
Writer, State) для себя, чтобы понять их лучше. Затем, может быть, напишите
монадный интерпретатор для маленького языка выражений используя документ
[Monad Transformers Step by Step](http://catamorph.de/documents/Transformers.pdf)
(упомянут в 'трансформеры монад' ниже).
(упомянут в «трансформеры монад» ниже).
Написание многих интерпретаторов просто изменяя монаду для изменения семантики
может помочь лучше понять, что происходит.
- [Этот рассказ](https://vimeo.com/73648150) от Tony отлично мотивирует трансформеры монад
, [слайды](https://dl.dropboxusercontent.com/u/7810909/talks/monad-transformers/cbaa991e0eb49224eb286c1e418e2b9828e1fb21/monad-transformers.pdf).
- [Этот рассказ](https://vimeo.com/73648150) от Tony отлично мотивирует трансформеры монад, [слайды](https://dl.dropboxusercontent.com/u/7810909/talks/monad-transformers/cbaa991e0eb49224eb286c1e418e2b9828e1fb21/monad-transformers.pdf).
Также, реализуйте `Control.Monad`. Функции типа `mapM` или `sequence` — хорошая
возможность попрактиковаться в написании общего кода монад.
@ -446,7 +445,7 @@ Writer, State) для себя, чтобы понять их лучше. Зат
# Тестирование, тесты, спеки, generative/property тестирование
- Это [руководство](https://github.com/kazu-yamamoto/unit-test-example/blob/master/markdown/en/tutorial.md) от Kazu Yamamoto просто фантастичecкое.
- Это [руководство](https://github.com/kazu-yamamoto/unit-test-example/blob/master/markdown/en/tutorial.md) от Kazu Yamamoto — просто фантастичecкое.
- [Simple-Conduit](https://github.com/jwiegley/simple-conduit): Хорошая простая
библиотека для изучения, как работает стриминг IO в целом, знания, применимые также
@ -498,11 +497,11 @@ Aeson — это стандартное решение для парсинга
## Emacs
- [Alejandro Serras's tutorial](https://github.com/serras/emacs-haskell-tutorial/blob/master/tutorial.md)
- [Alejandro Serrass tutorial](https://github.com/serras/emacs-haskell-tutorial/blob/master/tutorial.md)
- [My dotfiles](https://github.com/bitemyapp/dotfiles/)
- [Chris Done's emacs config](https://github.com/chrisdone/chrisdone-emacs)
- [Chris Dones emacs config](https://github.com/chrisdone/chrisdone-emacs)
## Vim
@ -526,7 +525,7 @@ Aeson — это стандартное решение для парсинга
Cabal Hell был проблемой для пользователей Haskell до появления песочниц (sandboxes).
Установка вне песочницы происходит в вашу пользовательскую базу данных пакетов.
Это *не очень* хорошая идея, за исключением основных пакетов, таких как Cabal. alex и happy.
Это *не очень* хорошая идея, за исключением основных пакетов, таких как Cabal, alex и happy.
Более ничто не должно быть установлено глобально или в пользовательскую базу данных пакетов,
если вы не уверены в том, что делаете.
@ -616,21 +615,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/)
## Какой фронтенд язык мне использовать?
@ -648,15 +647,15 @@ GHCJS и Haste интегрируются лучше с инструментам
# Для более глубокого понимания laziness, NF, WHNF
- [Notes on lambda calculus](https://vec.io/posts/notes-on-lambda-calculus).
- [Notes on lambda calculus](https://vec.io/posts/notes-on-lambda-calculus)
## Исследовательские документы про lazy lambda calculi
- [A call by need lambda calculus](http://homepages.inf.ed.ac.uk/wadler/topics/call-by-need.html#need-journal).
- [A call by need lambda calculus](http://homepages.inf.ed.ac.uk/wadler/topics/call-by-need.html#need-journal)
- [Demonstrating Lambda Calculus Reduction](http://www.itu.dk/~sestoft/papers/sestoft-lamreduce.pdf)
- [The lazy lambda calculus](http://www.cs.ox.ac.uk/files/293/lazy.pdf).
- [The lazy lambda calculus](http://www.cs.ox.ac.uk/files/293/lazy.pdf)
- [Lazy evaluation of Haskell](http://www.vex.net/~trebla/haskell/lazy.xhtml)
@ -668,7 +667,7 @@ GHCJS и Haste интегрируются лучше с инструментам
- Хорошее [руководство](http://kukuruku.co/hub/haskell/haskell-testing-a-multithread-application)
по тестированию и инкрементальной разработке многопоточного приложения в Haskell.
- [Functional Reactive Programming](http://www.haskell.org/haskellwiki/Functional_Reactive_Programming)
- [Functional Reactive Programming](http://www.haskell.org/haskellwiki/Functional_Reactive_Programming).
# Линзы и призмы
@ -702,7 +701,7 @@ 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.
- [Dont 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/) — это
руководство просто замечательно!
@ -715,15 +714,15 @@ catamorphisms). Знание о том, как реализовать unfold (an
- [Write Haskell as Fast as C](write_haskell_as_fast_as_c.md)
- [GHC Wiki: CoreSyn Type](https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/CoreSynType).
- [GHC Wiki: CoreSyn Type](https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/CoreSynType)
- [Hackage: GHC Core](https://hackage.haskell.org/package/ghc-core).
- [Hackage: GHC Core](https://hackage.haskell.org/package/ghc-core)
- [SO Question: Reading GHC Core](http://stackoverflow.com/questions/6121146/reading-ghc-core).
- [SO Question: Reading GHC Core](http://stackoverflow.com/questions/6121146/reading-ghc-core)
- [Haskell as fast as C](http://donsbot.wordpress.com/2008/06/04/haskell-as-fast-as-c-working-at-a-high-altitude-for-low-level-performance/).
- [Haskell as fast as C](http://donsbot.wordpress.com/2008/06/04/haskell-as-fast-as-c-working-at-a-high-altitude-for-low-level-performance/)
- [Real World Haskell, Chapter 25: Profiling and Optimizations](http://book.realworldhaskell.org/read/profiling-and-optimization.html).
- [Real World Haskell, Chapter 25: Profiling and Optimizations](http://book.realworldhaskell.org/read/profiling-and-optimization.html)
# Тип и теория категорий
@ -731,14 +730,14 @@ catamorphisms). Знание о том, как реализовать unfold (an
Если вы хотите вникнуть в типы и теорию категорий:
- [Catster's Guide](http://byorgey.wordpress.com/2014/01/14/catsters-guide/) и
[Catster's Guide 2](http://byorgey.wordpress.com/catsters-guide-2/)
- [Catsters Guide](http://byorgey.wordpress.com/2014/01/14/catsters-guide/) и
[Catsters Guide 2](http://byorgey.wordpress.com/catsters-guide-2/).
- [Вики-книга haskell](http://en.wikibooks.org/wiki/Haskell/Category_theory)
содержит неплохие диаграмы
содержит неплохие диаграмы.
- [Category Theory](http://www.haskell.org/haskellwiki/Category_theory)
на haskellwiki, также содержит хорошие ссылки
на haskellwiki, также содержит хорошие ссылки.
- [Categories from scratch](http://science.raphael.poss.name/categories-from-scratch.html), содержит несколько практических примеров.
@ -751,7 +750,7 @@ catamorphisms). Знание о том, как реализовать unfold (an
- [Awodey](http://ukcatalogue.oup.com/product/9780199237180.do) и
[MacLane](http://www.amazon.com/Categories-Working-Mathematician-Graduate-Mathematics/dp/0387984038). Стандартные книги про теорию категорий.
- [Harper's Practical Foundations for Programming Languages](http://www.cs.cmu.edu/~rwh/plbook/book.pdf)
- [Harpers Practical Foundations for Programming Languages](http://www.cs.cmu.edu/~rwh/plbook/book.pdf)
лучшее PL интро к теории типов, которое я читал.
- [Type theory and Functional Programming](http://www.cs.kent.ac.uk/people/staff/sjt/TTFP/).
@ -766,7 +765,7 @@ catamorphisms). Знание о том, как реализовать unfold (an
- [Making ad-hoc polymorphism less ad-hoc](http://swizec.com/blog/week-20-making-ad-hoc-polymorphism-less-ad-hoc/swizec/6564).
- [Theorems for Free!](http://ttic.uchicago.edu/~dreyer/course/papers/wadler.pdf).
- [Theorems for Free!](http://ttic.uchicago.edu/~dreyer/course/papers/wadler.pdf)
## Initial and Final, DSLs, Finally Tagless
@ -782,36 +781,36 @@ catamorphisms). Знание о том, как реализовать unfold (an
- [Typed Tagless Final Interpreters](http://okmij.org/ftp/tagless-final/course/lecture.pdf).
- [The dog that didn't bark](http://existentialtype.wordpress.com/2011/03/21/the-dog-that-didnt-bark/) less specifically relevant but interesting.
- [The dog that didnt bark](http://existentialtype.wordpress.com/2011/03/21/the-dog-that-didnt-bark/) less specifically relevant but interesting.
## Comonads
- [Comonads in Haskell](https://speakerdeck.com/dmoverton/comonads-in-haskell).
- [Comonads in Haskell](https://speakerdeck.com/dmoverton/comonads-in-haskell)
- [SO question: Can a Monad be a Comonad](http://stackoverflow.com/questions/16551734/can-a-monad-be-a-comonad).
- [SO question: Can a Monad be a Comonad](http://stackoverflow.com/questions/16551734/can-a-monad-be-a-comonad)
## Yoneda / CoYoneda
- [SO question: Step-by-step explanation of coyoneda](http://stackoverflow.com/questions/24000465/step-by-step-deep-explain-the-power-of-coyoneda-preferably-in-scala-throu).
- Свободные монады для Less, серия из трех публикаций от Edward Kmett
* [Part 1: Codensity](http://comonad.com/reader/2011/free-monads-for-less/).
* [Part 2: Yoneda](http://comonad.com/reader/2011/free-monads-for-less-2/).
* [Part 3: Yielding IO](http://comonad.com/reader/2011/free-monads-for-less-3/).
* [Part 1: Codensity](http://comonad.com/reader/2011/free-monads-for-less/)
* [Part 2: Yoneda](http://comonad.com/reader/2011/free-monads-for-less-2/)
* [Part 3: Yielding IO](http://comonad.com/reader/2011/free-monads-for-less-3/)
## Propositions vs. Judgments (computation)
- [StackExchange question: What is the difference between propositions and judgements](http://cstheory.stackexchange.com/questions/9826/what-is-the-difference-between-propositions-and-judgments).
- [StackExchange question: What is the difference between propositions and judgements](http://cstheory.stackexchange.com/questions/9826/what-is-the-difference-between-propositions-and-judgments)
- [Lecture notes from a short, three lecture course](http://www.ae-info.org/attach/User/Martin-L%C3%B6f_Per/OtherInformation/article.pdf)
# Зависимая типизация
- [Grokking sum types, value constructors, and type constructors](http://bitemyapp.com/posts/2014-04-05-grokking-sums-and-constructors.html) squint hard.
- [Grokking sum types, value constructors, and type constructors](http://bitemyapp.com/posts/2014-04-05-grokking-sums-and-constructors.html) squint hard
- [Lightweight Dependent-type Programming](http://okmij.org/ftp/Computation/lightweight-dependent-typing.html).
- [Lightweight Dependent-type Programming](http://okmij.org/ftp/Computation/lightweight-dependent-typing.html)
- [Idris programming language](http://www.idris-lang.org/).
- [Idris programming language](http://www.idris-lang.org/)
# Statically linking binaries

Loading…
Cancel
Save