En programmation informatique, une fonction pure est une fonction qui possède les propriétés suivantes, :
Une fonction pure est ainsi un analogue informatique d'une fonction mathématique. Certains auteurs, particulièrement de la communauté des langages impératifs, utilisent le terme "pure" pour désigner les fonctions qui ont uniquement la propriété 2 susmentionnée.
Les fonctions C++ suivantes sont pures :
floor, retournant la partie entière par défaut d'un nombre ;max, retournant le maximum de deux valeurs ;sin, retournant le sinus d'un nombre.Les fonctions C++ suivantes sont impures car elles ne vérifient pas la propriété 1 ci-dessus :
int f() {
return x;
}
int f(int* x) {
return *x;
}
int f() {
int x = 0;
std::cin >> x;
return x;
}
Les fonctions C++ suivantes sont impures car elles ne vérifient la propriété 2 ci-dessus :
void f() {
static int x = 0;
++x;
}
void f() {
++x;
}
void f(int* x) {
++*x;
}
void f() {
std::cout << "Hello, world!" << std::endl;
}