Fonction pure

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En informatique le terme fonction pure ou fonction propre désigne une fonction informatique :

  • qui est déterministe i.e. retourne toujours la même valeur pour les mêmes arguments ;
  • qui ne retourne que la valeur résultat, sans effets annexes tels que changements d'état, ou entrée-sortie (output/input).

C'est le cas des fonctions réalisant une fonction mathématique. Un langage qui impose que toutes les fonctions soient pures permet d'optimiser leurs appels : alors seulement on peut avoir f(2)+f(2)= 2*f(2)…

Les fonctions pures respectent les critères de transparence référentielle. L'emploi des fonctions pures est un des fondements du paradigme de programmation fonctionnelle.

Exemples de fonctions pures[modifier | modifier le code]

Les fonctions arithmétiques sont l'archétype des fonctions pures.

De fait, est pure toute fonction qui n'utilise que ses paramètres, ses variables locales, et d'autres fonctions pures, à l'exclusion de toute autre fonction ou procédure. Une fonction pure n'utilise ni n'altère de variable globale ; elle n'effectue ni entrée ni sortie.

Exemples de fonctions non pures[modifier | modifier le code]

Une fonction date n'est pas pure car elle retourne chaque jour une valeur différente. Une fonction random n'est pas pure, car elle retourne une valeur différente à chaque appel.

Toute fonction qui utilise ou modifie une variable globale ou une variable statique, toute fonction à effet de bord est impure ; c'est en particulier le cas des fonctions liées aux entrées/sorties.