Je dois vous avouer que je ne sais pas beaucoup sur la programmation fonctionnelle. J'ai lu ici et là, et donc est venu de savoir que dans la programmation fonctionnelle, une fonction retourne le même résultat, pour la même entrée, peu importe combien de fois que la fonction est appelée. C'est exactement comme une fonction mathématique qui évalue à même de sortie pour une même valeur de paramètre d'entrée qui comporte 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
. Que, peu importe ce que vous avez écrit f(10,4)
, vous pouvez le remplacer par 104
, sans altérer la valeur de l'expression complète. Cette propriété est appelée la transparence référentielle d'une expression.
Comme dit Wikipedia (lien),
À l'inverse, dans le code fonctionnel, la valeur de sortie d'une fonction dépend uniquement sur les arguments d'entrée de la fonction, de sorte que l'appel d'une fonction f deux fois avec la même valeur d'un argument x produira le même résultat f(x) deux fois.
Donc ma question est: est-ce une fonction de temps (qui renvoie le courant du temps) existent dans la programmation fonctionnelle?
Si oui, alors comment peut-il exister? N'est-il pas contraire au principe de la programmation fonctionnelle? Il est particulièrement viole la transparence référentielle qui est celui de la propriété de la programmation fonctionnelle (si j'ai correctement le comprendre).
Ou si non, alors comment peut-on savoir à l'heure actuelle dans la programmation fonctionnelle?