Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Ève

Fiche de lecture : Haskell: the craft of functional programming

Auteur(s) du livre : Simon Thompson
Éditeur : Addison-Wesley

Première rédaction de cet article le 27 octobre 2005


Un livre original qui est plutôt orienté vers l'apprentissage de la programmation fonctionnelle que vers celui du langage Haskell.

Il n'est probablement pas indispensable de savoir déjà programmer et ce livre pourrait être utilisé comme support de cours. L'auteur commence par les concepts de base de la programmation fonctionnelle, et, pour une fois, les exemples ne sont pas tous les sempiternels exemples mathématiques à base de factorielle et de Fibonacci mais des exemples graphiques avec des images que l'on transforme (pour faciliter la mise en œuvre, une intéressante implémentation entièrement en art ASCII est présentée par la suite).

Il explique ensuite l'environnement Hugs, utilisé pour la pratique, puis expose les différents concepts utilisés : listes, fonctions comme objets de première classe (pouvant être passées en argument), application partielle et curryfication, introduction à la preuve de programmes, le système des classes, la programmation paresseuse...

Comme le livre vise à enseigner la programmation fonctionnelle, plus que le langage Haskell, d'importants pans de celui-ci ne sont pas traités du tout : les monades sont très vite expédiées, les enregistrements nommés pas mentionnés, l'inférence de types est complètement absente (et l'auteur déclare donc systématiquement ses types). Les questions pratiques comme le contenu du Prélude, les bibliothèques existantes ou les entrées/sorties sont très peu traitées. Le lecteur ne doit donc pas s'imaginer qu'il pourra programmer en Haskell immédiatement, ni lire le code de darcs immédiatement.

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)