Josselin Auguste

Real music lover & Software gardener

Le petit guide pour découvrir la programmation fonctionnelle

Découvrir la programmation fonctionnelle par le Texas Hold’em, c’est la bonne petite idée de Christophe Thibaut pour son livre The Little Haskeller.

Le livre retranscrit une discussion imaginaire entre un novice et un haskeller sur la manière de modéliser une partie de Texas Hold’em. Ce mode narratif rend la lecture extrêmement didactique et la compréhension du sujet très progressive, à l’opposé de l’image austère que trainent bon nombre de livres sur le sujet1. Cela n’est d’ailleurs pas sans rappeler le format de coding dojo slow kata2, partageant les mêmes principes & objectifs, et dont ce livre pourrait être la retranscription d’une session.

Du fait de cette approche, le livre est taillé pour un public à mon avis débutant en programmation fonctionnelle. Une personne novice en haskell mais possédant un minimum de pratique en programmation fonctionnelle n’y trouvera que peu d’intérêt, hormis peut être une première introduction à la syntaxe haskell, mais le réel intérêt du livre n’est pas là : il est de rentrer dans la tête du développeur pour comprendre son approche face à un problème, et sa manière de le résoudre avec des constructions fonctionnelles, en particulier le pattern matching et les opérations de transformation de listes. Ici point d’applicative ou de monad !

Seul point noir au tableau, le livre n’est disponible qu’au format PDF, et sa mise en page n’est malheureusement pas très heureuse, ce qui en rend la lecture difficile autrement que sur un ordinateur. Dommage car le format sous forme de conversation aurait permit une mise en page plus adaptatée aux écrans de taille plus modeste.


  1. Haskell Programming from first principles par exemple. [return]
  2. Le slow kata est un format de kata dont l’objectif est de maximiser la compréhension du sujet traité par l’ensemble des personnes participantes à l’exercice. L’avancement du kata est ainsi conditionné par le fait que la solution proposée est comprise par toutes les personnes présentes, favorisant les expérimentations et les échanges. Si ce format limite la couverture du sujet traité, il favorise néanmoins une compréhension en profondeur. Merci à Bernard pour m’avoir fait découvrir ce format ! [return]