Salut, tout le monde ! Tout va bien ?
Aujourd’hui, je vais commencer à parler un peu de programmation fonctionnelle en utilisant JavaScript, ainsi que des caractéristiques de ce paradigme, et j’entrerai dans la première partie de cette série, qui présentera les concepts et les définitions des fonctions pures.
Qu’est-ce que la programmation fonctionnelle ?
Rien de plus qu’un paradigme où les programmes s’exécutent par l’évaluation des fonctions. Dans son sens le plus pur, il est basé sur la manière dont les fonctions, les variables et les valeurs travaillent réellement en mathématiques.
De plus, elle adopte une approche plus déclarative que impérative dans ses structures. Ainsi, nous avons les principes fondamentaux de la programmation fonctionnelle, à savoir : les fonctions pures, l’immuabilité, la récursivité, la composition de fonctions, les fonctions de première classe, les lambdas et les closures.
Dans ce premier article, je parlerai exclusivement des fonctions pures.
Fonctions pures
Pour qu’une fonction soit considérée comme pure, elle doit nécessairement présenter deux caractéristiques :
- 1 – Pour la même entrée, elle renverra toujours le même résultat: la fonction fournit systématiquement la même valeur de retour pour les mêmes arguments. Cela signifie que la fonction ne peut dépendre d’aucun état mutable (les objets mutables sont des objets dont l’état peut changer, pouvoir être instanciés et se voir attribuer une valeur).
- 2 – N’entraîne pas d’effets secondaires: la fonction ne peut pas provoquer d’effets secondaires. Autrement dit, la fonction n’accède ni ne modifie des valeurs globales. Les effets secondaires possibles peuvent inclure des entrées/sorties (console.log, Math.random, Date.now).
Exemple de fonction pure :
const multiplie = (a, b) => a * b;
Quels sont les avantages d’utiliser une fonction pure ?
- Elles sont faciles à traiter, à tester et à déboguer, car elles ne dépendent pas d’états mutables.
- La valeur de retour peut être mémorisée, évitant ainsi une recomputation future.
- Elles sont plus faciles à tester car il n’y a pas de dépendances (comme les logs, les appels AJAX, les bases de données, etc.) qui doivent être simulées.
Comme on peut le voir, toutes les fonctions de nos systèmes ne seront pas pures, mais nous pouvons essayer d’utiliser des fonctions pures dans au moins 80 % des cas, la part restante étant destinée à des fonctions d’enregistrement de logs, de récupération de dates, de valeurs aléatoires, etc.




