Je dois admettre que je ne connais pas grand-chose à la programmation fonctionnelle. Je l'ai lu ici et là, et j'ai donc appris que dans la programmation fonctionnelle, une fonction renvoie la même sortie, pour la même entrée, peu importe combien de fois la fonction est appelée. C'est exactement comme une fonction mathématique qui évalue à la même sortie pour la même valeur des paramètres d'entrée qui implique dans l'expression de fonction.
Par exemple, considérez ceci:
f(x,y) = x*x + y; // It is a mathematical function
Peu importe combien de fois vous utilisez f(10,4)
, sa valeur sera toujours 104
. En tant que tel, où que vous ayez écrit f(10,4)
, vous pouvez le remplacer par 104
, sans modifier la valeur de l'expression entière. Cette propriété est appelée transparence référentielle d'une expression.
Comme le dit Wikipedia ( lien ),
Inversement, dans le code fonctionnel, la valeur de sortie d'une fonction dépend uniquement des arguments qui sont entrés dans la fonction, donc appeler une fonction f deux fois avec la même valeur pour un argument x produira le même résultat f (x) les deux fois.
Une fonction temporelle (qui renvoie l' heure actuelle ) peut-elle exister dans la programmation fonctionnelle?
Si oui, comment peut-il exister? Ne viole-t-il pas le principe de programmation fonctionnelle? Il viole particulièrement la transparence référentielle qui est une des propriétés de la programmation fonctionnelle (si je comprends bien).
Sinon, comment savoir l'heure actuelle de la programmation fonctionnelle?