Fonction pure

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

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

  • dont le résultat ne dépend que des arguments et non pas d'un état externe ;
  • qui n'a pas d'effets de bord, c'est-à-dire d'effets secondaires 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 heure n'est pas pure car elle retourne à chaque appel une valeur différente.
  • Une fonction random (nombre aléatoire[1]) 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.

Notes et références[modifier | modifier le code]

  1. En Linux, par ce qui y est nommé une « réserve d'entropie », où sont enregistrés des événements non reproductibles à l'identique entre deux appels.

Voir aussi[modifier | modifier le code]