Le problème pour implémenter l'évaluation paresseuse, c'est ... l'évaluation immédiate, plus exactement des paramètres quand on évalue une fonction/méthode.
C'est possible de circonvenir la chose en enrobant une valeur dans une fonction.
Cela suppose la possibilité d'utiliser une fonction comme un paramètre d'une autre fonction, ce qui commence à se généraliser dans pas mal de langage.
// let a=..., let b=...functionthunk_a(){returna}functionthunk_b(){returnb}functionmyAnd(a,b){// a and b are thunksletvalA=a()ifvalAthenreturnvalAelsereturnb()}
C'est moche et lourdingue, mais ça fait ce qui était demandé.
# pour implémenter : enrober dans une fonction
Posté par Dreammm . En réponse au journal Haskell -- Évaluation paresseuse. Évalué à 9.
Le problème pour implémenter l'évaluation paresseuse, c'est ... l'évaluation immédiate, plus exactement des paramètres quand on évalue une fonction/méthode.
C'est possible de circonvenir la chose en enrobant une valeur dans une fonction.
Cela suppose la possibilité d'utiliser une fonction comme un paramètre d'une autre fonction, ce qui commence à se généraliser dans pas mal de langage.
On appelle cela un thunk
Exemple en javascript :
C'est moche et lourdingue, mais ça fait ce qui était demandé.
La même chose en bien mieux, par Larry Wall : Laziness is a virtue
Soyez des feignasses !