Programmation fonctionnelle

Paradigme de programmation qui repose sur la composition de fonctions.

En programmation fonctionnelle, les fonctions effectuent une opération unique. Ce sont des objets comme les autres qui peuvent prendre d’autres fonctions en arguments.

Ces fonctions sont ensuite combinées ensemble et permettent ainsi de réaliser une opération plus complexe.

La plupart des nouveaux langages sont influencés par la programmation fonctionnelle pour faciliter le traitement de flux de données et la possibilité de travailler avec divers logiciels en ligne en programmation concurrente : Go (Google), Rust (Mozilla), Kotlin (Android), Swift (Apple), Erlang (Whatsapp), Scala (Twitter).

Python propose le filtrage par motif fonctionnel.

Exemples : Elm, Lisp (1950), Haskell, ML, OCaml, F#, Clojure.

Principales caractéristiques :

  • Pas d’affectation, transparence référentielle.
  • Au lieu de décrire la séquence de traitements qui conduisent les uns aux autres, le programme décrit les rapport entre les données et le résultat. Quoi au lieu du comment.
  • Idempotence : chaque appel d’une fonction renvoie toujours le même résultat.
  • Les appels aux fonctions peuvent se faire à n’importe quel moment : parallélisation.
  • Pas de boucles, à la place des définitions récursives de fonctions.