Programmation fonctionnelle

La programmation fonctionnelle est un paradigme de programmation de type déclaratif qui considère le calcul en tant qu'évaluation de fonctions mathématiques.

Comme le changement d'état et la mutation des données ne peuvent pas être représentés par des évaluations de fonctions[1] la programmation fonctionnelle ne les admet pas, au contraire elle met en avant l'application des fonctions, contrairement au modèle de programmation impérative qui met en avant les changements d'état[2].

Un langage fonctionnel est donc un langage de programmation dont la syntaxe et les caractéristiques encouragent la programmation fonctionnelle. Alors que l'origine de la programmation fonctionnelle peut être trouvée dans le lambda-calcul, le langage fonctionnel le plus ancien est Lisp, créé en 1958 par McCarthy. Lisp a donné naissance à des variantes telles que Scheme (1975) et Common Lisp (1984)[3] qui, comme Lisp, ne sont pas ou peu typées. Des langages fonctionnels plus récents tels ML (1973), Haskell (1987), OCaml, Erlang, Wolfram Language (1988)[4],[5], Clean et Oz, CDuce, Scala (2003), F# ou PureScript (2013), Agda (en) sont fortement typés.

  1. Il s'agit là d'un raccourci hâtif, mais le lecteur doit retenir que les langages fonctionnels n'ont pas a priori d'état. Cependant grâce à la théorie des monades on peut y adjoindre des états, mais alors il faut le faire de façon explicite et consciente et cela est l'affaire de programmeurs experts et sort largement du cadre de cette introduction.
  2. (en) Paul Hudak, « Conception, evolution, and application of functional programming languages », ACM Computing Surveys, vol. 21, no 3,‎ , p. 359-411 (lire en ligne)
  3. auxquels il faut ajouter XSLT et Anubis.
  4. (en) « Functional Programming »
  5. « Functional vs. Procedural Programming Language », sur web.archive.org, (consulté le )

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search