La programmation fonctionnelle en une image.


Pour ce bonus, je vous propose un schéma récapitulatif des principes fondamentaux de la programmation fonctionnelle. Ce n’est pas tout ce qu’il y a à savoir sur elle, mais tous les autres principes découlent de ceux-ci.

Vous pouvez télécharger l’image en HD ici.


Explications

Les types en PF n’ont pas de comportement, ce sont simplement des données organisées dans des structures comme en C.

Les fonctions pures n’ont pas d’effet secondaire : elles ne font que prendre des paramètres d’entrée, faire des traitements et retourner un résultat. C’est ce qui les rend très prédictibles, et donc simples à tester.

Des types peuvent contenir d’autres types afin d’en former des plus complexes.

Les fonctions prennent en entrée des types, et en retournent d’autres qui sont ensuite utilisés par d’autres fonctions. C’est cet enchaînement qui permet de créer des algorithmes complexes avec des règles aussi simples.

Les fonctions impures sont celles qui vont s’occuper de tous les effets secondaires. Elles utilisent l’environnement fonctionnel pour faire la majorité de leurs calculs, mais l’inverse n’est pas vrai.

Voici un exemple schématique d’une architecture fonctionnelle complète, et de son utilisation dans une règle métier. L'image est téléchargeable en HD ici.

Et voilà, en espérant avoir été clair, si ce n’est pas le cas, faites-le moi savoir dans les commentaires, je mettrai ma cape viendrai vous porter secours au plus vite 😉


Références

Et chose promise, chose due, je vous mets quelques liens pour approfondir vos connaissances au sujet de la PF.

La conférence de Russ Olsen, mon premier pas dans la PF.

La conférence de Marl Seemann sur l’intérêt de la PF (c’est à lui que j’ai piqué l’idée du boulet pour mon article 😇).

Tout le blog de Scott Wlaschin. Il parle principalement du langage F#, mais la majorité des concepts s’appliquent pour la PF de manière générale.

La conférence de Scott Wlaschin sur les patrons de conception principaux de la PF.

La conférence de Scott Wlaschin (oui, j’adore ce type) sur la composition, bien plus poussée que ce que j’ai écrit dans mon article.

La conférence de Jordan Parmer qui montre une application concrète et professionnelle de la PF.

La documentation du langage Scala, qui est une parfaite transition pour les personnes avec un background POO qui désirent apprendre un langage de PF.