Skip to content

Guide fonctionnel de la programmation fonctionnelle : Une approche fonctionnelle

Bienvenue dans le Guide Presque Suffisant de la programmation fonctionnelle (PF) ! Ce livre vous enseignera les fondamentaux de la PF en JavaScript.

Ce que vous apprendrez

  • Fonctions pures : Écrire un code prévisible et testable
  • Composition : Construire des programmes complexes à partir de fonctions simples
  • Curryfication : Transformer des fonctions pour une meilleure réutilisabilité
  • Foncteurs & Monades : Gérer les transformations de données avec élégance
  • Théorie des catégories : Fondements mathématiques de la programmation fonctionnelle

Commencer

Démarrez avec Chapitre 1 : Mais que faisons-nous donc ? pour entamer votre voyage dans la PF.

À propos de ce guide

Ce livre traite du paradigme fonctionnel en général. Nous utiliserons le langage de PF le plus populaire au monde : JavaScript. Certains pourraient penser que c'est un mauvais choix car il va à l'encontre de la culture actuelle, principalement impérative.

Cependant, je crois que c'est la meilleure façon d'apprendre la PF pour plusieurs raisons :

  • Vous l'utilisez probablement quotidiennement au travail Cela vous permet de pratiquer et d'appliquer vos nouvelles connaissances chaque jour sur des projets réels, plutôt que sur des projets personnels le soir et le week-end avec un langage fonctionnel ésotérique.

  • Pas besoin de tout apprendre d'un coup pour commencer à programmer Dans un langage fonctionnel pur, vous ne pouvez pas logger une variable ou lire un nœud DOM sans utiliser de monades. Ici nous pouvons tricher un peu en apprenant à purifier notre base de code. C'est aussi plus facile de démarrer avec ce langage car il est multi-paradigme et vous pouvez vous appuyer sur vos pratiques actuelles pendant vos apprentissages.

  • Le langage est pleinement capable d'écrire du code fonctionnel de premier ordre Nous avons toutes les fonctionnalités nécessaires pour imiter un langage comme Scala ou Haskell avec une ou deux petites bibliothèques. La programmation orientée objet (POO) domine actuellement l'industrie, mais elle est clairement maladroite en JavaScript. C'est comme camper sur une autoroute ou faire des claquettes en galoches. Nous devons utiliser bind partout sous peine de voir this changer, nous n'avons pas de classes[^1], nous contournons les comportements étranges quand le mot-clé new est oublié, les membres privés n'existent que via les closures. Pour beaucoup d'entre nous, la PF semble plus naturelle de toute façon.

Cela dit, les langages fonctionnels typés seront sans aucun doute le meilleur endroit pour coder dans le style présenté ici. JavaScript sera notre moyen d'apprendre un paradigme - son application finale dépendra de vous. Heureusement, les interfaces étant mathématiques, elles sont omniprésentes. Vous vous sentirez chez vous avec Swiftz, Scalaz, Haskell, PureScript et autres environnements à vocation mathématique.

Exercices

Vous trouverez des exercices tout au long du livre pour tester votre compréhension. Ils sont disponibles dans le dossier exercices du dépôt.

Support

Les fonctions de support et structures de données algébriques utilisées sont disponibles dans le dossier support.


[^1]: Les classes ont été ajoutées en ES2015, mais elles sont surtout du sucre syntaxique pour l'héritage prototypique existant.