Functional Programming

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources (juin 2023).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

Le Functional Programming, abrégé FP, est un langage créé par John Backus en 1977 dans son article Can programming be liberated from the von Neumann style ? : a functional style and its algebra of programs , en français : « La programmation peut-elle se libérer du style de von Neumann ? : un style fonctionnel et son algèbre des programmes ».

La fonction factorielle s'y écrit :

`Def fact = eq0 -> ~1 ; * o [ id, fact o sub1 ]`

avec :

`Def eq0 = eq o [ id, ~0 ]`

`Def sub1 = - o [ id, ~1 ]`

## Vue d'ensemble

[modifier | modifier le code]

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Il existe plusieurs types de valeurs atomiques : booléens, entiers (positifs), caractères, symboles...

Étant donné des valeurs x1, …, xn, la suite <x1, …, xn> est elle-même une valeur pour le langage.

⊥ (« antitruc ») est la valeur « indéfini » ; elle est absorbante par formation de suite : si une suite comporte la valeur ⊥, alors elle est évaluée à ⊥.

<x1, …, ⊥, …, xn> = ⊥

Une fonction `f` transforme une valeur `x` en une autre, dénotée `f:x`.

Toute fonction est stricte (en), c'est-à-dire que si x s'évalue à ⊥, alors `f:x = ⊥`.

## Fonctionnelles

[modifier | modifier le code]

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue ! Comment faire ?

Une fonctionnelle est une fonction opérant sur d'autres fonctions.

Exemples :

* `unit` ;
* `composition` ;
* `construction` ;
* `condition` ;
* `apply-to-all` ;
* `insert-right` ;
* `insert-left`.

## Voir aussi

[modifier | modifier le code]

* Programmation fonctionnelle
* Logique combinatoire

## Bibliographie

[modifier | modifier le code]

* (en) Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs, John Backus
* (en) Hague, James (December 28, 2007). "Functional Programming Archaeology". Programming in the Twenty-First Century.
* (en) Sacrificing simplicity for convenience: Where do you draw the line?, John H. Williams and Edward L. Wimmers, IBM Almaden Research Center
* (en) Systems programming in the functional language FP, Jin Lingzi & Zhu Hong, Journal of Computer Science and Technology, 1988.

## Liens externes

[modifier | modifier le code]

*   *   *   *

* Portail de la programmation informatique

*[(en)]: Langue : anglais