@ -21,7 +21,7 @@ Soyez gentils et courtois. Etre méchant ou désagréable fait peur aux autres e
Une critique pour le plaisir de critiquer ne sers que la personne qui la fait, pas celle qui la reçoit.
Ne décrivez pas les choses comme "faciles" ou "triviales". Vous créerez un malaise pour les autres qui auraient la sensation de devoir travailler plus durement pour progresser. Les personnes qui apprenent lentement sont souvent celles qui font un apprentissage plus approfondi, c'est quelque chose que nous devons célébrer et encourager !
Ne décrivez pas les choses comme "faciles" ou "triviales". Vous créerez un malaise pour les autres qui auraient la sensation de devoir travailler plus durement pour progresser. Les personnes qui apprennent lentement sont souvent celles qui font un apprentissage plus approfondi, c'est quelque chose que nous devons célébrer et encourager !
Ne pas feindre la surprise. N'ayez pas l'air surpris lorsque quelqu'un affirme ne pas savoir quelque chose. La personne se sentira mal et vous n'aurez rien accompli mis à part flatter votre égo.
@ -29,7 +29,7 @@ Pas de "en fait...". Lorsqu'une personne dit quelque chose de presque - mais pas
Pas de conduite accompagnée. Si vous voyez des personnes buter sur un problème, vous ne devez pas immédiatement donner des conseils. Laissez travailler dessus à moins que quelqu'un demande de l'aide. Eviter les interruptions est [un des objectifs fondateurs du canal #haskell-beginners](http://chrisdone.com/posts/teaching).
Pas de -ismes. Racisme, sexisme, homophobie, transphobie, et autres biais ne sont pas bienvenus et ne seront pas tolerés.
Pas de -ismes. Racisme, sexisme, homophobie, transphobie, et autres biais ne sont pas bienvenus et ne seront pas tolérés.
---
@ -41,7 +41,7 @@ Haskell est un langage de programmation, défini par une spécification, la plus
## GHC
[GHC](http://www.haskell.org/ghc/) est le moyen le plus populaire de travailler avec le langage Haskell. Il inclut un compilateur, et un REPL(interpréteur), la gestion de paquets, et plus encore.
[GHC](http://www.haskell.org/ghc/) est le moyen le plus populaire de travailler avec le langage Haskell. Il inclut un compilateur, et un REPL(interpréteur), la gestion de paquets, et plus encore.
## Cabal
@ -79,7 +79,7 @@ contient un _bac à sable_ cabal.
## Debian
### Dêpot GHC pour debian stable
### Dépôt GHC pour debian stable
Si vous utilisez la version stable de Debian, il est plus simple d'utiliser
http://deb.haskell.org/. Pour cela:
@ -104,7 +104,7 @@ lancez:
$ sudo sed -i s/jessie/trusty/g /etc/apt/sources.list.d/hvr-ghc-jessie.list
```
Pour les autres versions de Debian, il suffit de remplacer les occurences de
Pour les autres versions de Debian, il suffit de remplacer les occurrences de
`jessie` par le nom de votre version dans la commandes ci-dessus.
Si, pour une raison quelconque, le fichier
@ -130,7 +130,7 @@ et ensuite lancez le script `bootstrap.sh`.
## Fedora 21
Pour installer Haskell 7.8.4 depuis le dépôt non-officiel
C'est la version en ligne du cours de [Bryan O'Sullivan](https://github.com/bos)
enseigné à Stanford. Si vous ne savez qui il est, jetez un coup d'oeil à la moitié
des libraries utilisées par les applications Haskell, son nom y figure. A regarder de
plus pret, si vous avez déjà fait le cours de Yorgey, les modules sur les
types fantomes, les controles des flux d'informations, les extensions de language,
plus près, si vous avez déjà fait le cours de Yorgey, les modules sur les
types fantômes, les contrôles des flux d'informations, les extensions de language,
la concurrence, les pipes, et les lenses.
---
@ -294,7 +294,7 @@ disponibles en ligne.
Je recommande RWH comme reference (un livre épais). Les chapitres sur le parsing et
les monades sont super pour comprendre où les monades sont utiles. D'autres ont confirmé
qu'il l'avaient beaucoup apprécié. Certainement une bonne suite pour des idomes plus pratiques
qu'il l'avaient beaucoup apprécié. Certainement une bonne suite pour des idiomes plus pratiques
lorsque vous aurez intégré les bases d'Haskell.
### Que sont les sucres syntactiques `<-` / `do` / comprehension de listes ?
@ -334,7 +334,7 @@ vous n'accrochez pas immédiatement à celle ci.
- Question sur SO : '[Haskell a-t-il une évaluation paresseuse ?](http://stackoverflow.com/questions/13042353/does-haskell-have-tail-recursive-optimization)'
- les slides de [Johan Tibell](https://github.com/tibbe) tirés d'une présentation
intitulée [raisoner avec l'évaluation paresseuse](http://www.slideshare.net/tibbe/reasoning-about-laziness).
intitulée [raisonner avec l'évaluation paresseuse](http://www.slideshare.net/tibbe/reasoning-about-laziness).
## Brève démonstration
@ -355,7 +355,7 @@ let a = 1 * a -- not guarded, (*) is strict
- [Ordre d'évaluation et jetons d'états](https://www.fpcomplete.com/user/snoyberg/general-haskell/advanced/evaluation-order-and-state-tokens)
- [Révéler les mytères de la monade IO](http://blog.ezyang.com/2011/05/unraveling-the-mystery-of-the-io-monad/).
- [Révéler les mystères de la monade IO](http://blog.ezyang.com/2011/05/unraveling-the-mystery-of-the-io-monad/).
- ["instructions" du premier ordre](http://blog.jle.im/entry/first-class-statements).
@ -375,7 +375,7 @@ Commentaire sur un fil Reddit de `glaebhoerl` :
# Monades et transformateurs de monades
> Ne faites pas ça vant de comprendres les typeclasses, Monoid, Functor et
> Ne faites pas ça avant de comprendre les typeclasses, Monoid, Functor et
> Applicative !
Implémenter les monades de la librairie standard (List, Maybe, Cont, Error,
@ -383,7 +383,7 @@ Reader, Writer, State) par vous-même afin de mieux les comprendre. Après, vous
pouvez peut-être écrire un interpréteur monadique pour un langage avec des petites
expressions en utilisant le papier sur les
[transformateurs de monades étape par étape](http://www.cs.virginia.edu/~wh5a/personal/Transformers.pdf)
(mentioné dans la section "transformateurs de monades" ci-dessous).
(mentionné dans la section "transformateurs de monades" ci-dessous).
Ecrire plusieurs interpréteurs en changeant juste le Monde pour changer les
sémantiques peut aider à comprendre ce qui se passe.
@ -500,7 +500,7 @@ L'enfer avec Cabal était un problème pour les utilisateurs d'Haskell avant l'i
des bacs à sable. Installer en dehors d'un bac à sable va installer dans le package-db
de l'utilisateur. Ce n'est *pas* une bonne idée mis à part pour quelques librairies
fondamentales comme Cabal, alex, et happy. Rien d'autre ne devrait être installé dans le
package-db de l'utilsateur ou le global à moins que vous ne sachiez ce que vous faites.
package-db de l'utilisateur ou le global à moins que vous ne sachiez ce que vous faites.
Quelques bonnes pratiques pour éviter l'enfer avec cabal sont disponibles
Une fois que êtes confortables avec Haskell, vous devriez considérer fortement l'apprentissage
des Lenses et Prisms, même en tant que simple "utilisateur". Vous n'avez pas besoin de comprendre
la catégorie sous-jascente pour que celà vous soit utile.
la catégorie sous-jascente pour que cela vous soit utile.
Les gens sur-estiment grandement la difficulté d'utiliser les Lens. Quiconque confortable
avec Functor/Foldable/Traversable (ou juste le premier) peux utiliser les
@ -668,7 +668,7 @@ Si vous avez déjà fait quelque chose comme: `(fmap . fmap)` vous étiez en tra
Je recommande ces deux tutoriels / introductions:
- [Un petit tutriel sur Lens pour commencer](https://www.fpcomplete.com/school/to-infinity-and-beyond/pick-of-the-week/a-little-lens-starter-tutorial)
- [Un petit tutoriel sur Lens pour commencer](https://www.fpcomplete.com/school/to-infinity-and-beyond/pick-of-the-week/a-little-lens-starter-tutorial)
- [Lens: Lenses, Folds et Traversals](https://github.com/ekmett/lens#lens-lenses-folds-and-traversals)
@ -692,7 +692,7 @@ Ces documents se limitent aux traversables et foldables.
- [Schémas de Récursion](http://comonad.com/reader/2009/recursion-schemes/) - Ce
guide pratique est excellent.
- [Programmation Functionelle avec des Bananes, des Lenses, des Enveloppes et du Fil barbelé](http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf)
- [Programmation Fonctionnelle avec des Bananes, des Lenses, des Enveloppes et du Fil barbelé](http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf)
@ -712,7 +712,7 @@ Ces documents se limitent aux traversables et foldables.
# Type et Théorie des Catégories
> *Pas* nécessaire pour écrire du Haskell, juste pour ceux interessés !
> *Pas* nécessaire pour écrire du Haskell, juste pour ceux intéressés !
Si vous voulez en apprendre plus sur les types et la théorie des catégories:
@ -734,7 +734,7 @@ Si vous voulez en apprendre plus sur les types et la théorie des catégories:
- [Question sur Quora: Quel est le meilleur livre sur la théorie des catégories ?](http://www.quora.com/Category-Theory/What-is-the-best-textbook-for-Category-theory?share=1) les recommandations de Kmett
- [Awodey](http://ukcatalogue.oup.com/product/9780199237180.do) et
[MacLane](http://www.amazon.com/Categories-Working-Mathematician-Graduate-Mathematics/dp/0387984038). Les livres de référencesur la théorie des catégories.
[MacLane](http://www.amazon.com/Categories-Working-Mathematician-Graduate-Mathematics/dp/0387984038). Les livres de référencesur la théorie des catégories.
- [Fondations Pratiques pour les Languages de Programmation de Harper](http://www.cs.cmu.edu/~rwh/plbook/book.pdf) est la meilleure introduction à la théorie des catégories d'un point de vue des languages de programmation.
@ -773,7 +773,7 @@ Si vous voulez en apprendre plus sur les types et la théorie des catégories:
- [Le chien qui n'aboyait pas](http://existentialtype.wordpress.com/2011/03/21/the-dog-that-didnt-bark/) moins spécifique mais interessant tout de même.
- [Le chien qui n'aboyait pas](http://existentialtype.wordpress.com/2011/03/21/the-dog-that-didnt-bark/) moins spécifique mais intéressant tout de même.
## Co-monades
@ -781,9 +781,9 @@ Si vous voulez en apprendre plus sur les types et la théorie des catégories:
- [question sur SO: Est-ce qu'une monade peut être une co-monade ?](http://stackoverflow.com/questions/16551734/can-a-monad-be-a-comonad).
## Yoneda / CoYoneda
## Yoneda / Co-Yoneda
- [question sur SO: explication pas-à-pas de coyoneda](http://stackoverflow.com/questions/24000465/step-by-step-deep-explain-the-power-of-coyoneda-preferably-in-scala-throu).
- [question sur SO: explication pas-à-pas de co-yoneda](http://stackoverflow.com/questions/24000465/step-by-step-deep-explain-the-power-of-coyoneda-preferably-in-scala-throu).
- Free monads for Less, une séquence de trois articles par Edward Kmett