en: This actual (long) article contains four parts:
fr: Cet article contient quatres parties :
en: - Introduction: a fast short example to show Haskell can be friendly.
en: - Basic Haskell: Haskell syntax, and some essential notions.
en: - Hard Difficulty Part:
en: - Functional style; an example from imperative to functional style
en: - Types; types and a standard binary tree example
en: - Infinite Structure; manipulate an infinite binary tree!
en: - Hell Difficulty Part:
en: - Deal with IO; A very minimal example
en: - IO trick explained; the hidden detail I lacked to understand IO
en: - Monads; incredible how we can generalize
en: - More on infinite tree; a discussion on infinite tree manipulation.
fr: - Introduction : un exemple rapide pour montrer qu'Haskell peut être facile.
fr: - Les bases d'Haskell : La syntaxe et des notions essentielles
fr: - Partie difficile :
fr: - Style fonctionnel : un exemple progressif, du style impératif au style fonctionnel ;
fr: - Types : la syntaxe et un exemple d'arbre binaire ;
fr: - Structure infinie : manipulons un arbre infini !
fr: - Partie de difficulté infernale :
fr: - Utiliser les IO : un exemple très minimal ;
fr: - Le truc des IO révélé : les détails cachés d'IO qui m'ont manqués
fr: - Les monades : incroyable à quel point on peut généraliser
fr: - Revenons sur les arbres infinis : un discussion sur les arbres infinis
en: > Note: Each time you'll see a separator with a filename ending in `.lhs`, you could click the filename to get this file. If you save the file as `filename.lhs`, you can run it with
en: > <pre>
en: > runhaskell filename.lhs
en: > </pre>
en: >
en: > Some might not work, but most will.
en: > You should see a link just below.
fr: > Note: Chaque fois que vous voyez un séparateur avec un nom de fichier se terminant par `lhs`, vous pouvez cliquer sur le nom de fichier et télécharger le fichier.
fr: > Si vous sauvegarez le fichier sour le nom `filename.lhs`, vous pouvez l'exécuter avec :