Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Ève

Fiche de lecture : The Haskell school of expression

Auteur(s) du livre : Paul Hudak
Éditeur : Cambridge University Press
978-0-521-64408-2
Publié en 2000
Première rédaction de cet article le 17 mai 2011


Allez, encore un livre sur le langage de programmation Haskell. Celui-ci est intermédiaire entre « Real-world Haskell », très concret, ou « Haskell: the craft of functional programming », bien plus abstrait.

L'auteur a choisi une approche pédagogique simple et relativement originale (surtout dans le monde de la programmation fonctionnelle, où les exemples sont plus souvent empruntés aux mathématiques). Il utilise Haskell pour faire des dessins et toutes les notions essentielles du langages sont introduites via leur utilisation dans le monde du graphique. De l'affichage de formes simples :

data Shape = Rectangle Side Side 
           | ... autres formes

area :: Shape -> Float
area (Rectangle s1 s2) = s1 * s2

jusqu'aux monades qui servent pour modéliser les animations. Cette utilisation du graphique rend les exercices plus rigolos, avec comme récompense de belles images (voyez les démos).

Les graphiques sont rendus en utilisant la bibliothèque SOEGraphics (développé pour ce livre). À l'époque de la parution du livre, elle n'existait que sur Windows mais elle marche désormais ailleurs. Les exemples de code sont disponibles en ligne. On trouve plusieurs autres ressources (transparents pour un cours, correction des exercices) sur le site du livre. Bref, on est vraiment dans le concret.

Deux exemples complets et plus complexes figurent à la fin, un tiré de la musique (et très difficile à lire, même pour un musicien, car le texte en anglais utilise les notations musicales états-uniennes) et un langage de commande d'un robot.

En résumé, un livre que je recommenderai pour apprendre Haskell. On peut utiliser ensuite les deux autres cités plus haut pour approfondir, respectivement l'interface avec le monde réel, et les bases théoriques.

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)