Si je ne me trompe pas, dans les cas suivants: f x = ... let f x = ... where f x = ... l'évaluation de (f x) est automatiquement mémoisée par GHC pour chaque instance de x. Par contre, let f = (+1) in f x ne mémoize pas (f x). Pour être certain de ce que fait le compilo GHC, tu peux poser la question à Glasgow-haskell-users. Moi, je n'y suis pas souscrit. Dan Stephane Bortzmeyer wrote:
On Thu, Sep 20, 2007 at 01:31:46PM -0700, Dan Weston
wrote a message of 195 lines which said: En revanche, grâce à la transparence référentielle, le résultat d'une expression une fois évaluée peut être mémoizé (http://fr.wikipedia.org/wiki/M%C3%A9moization) et réutilisé ailleurs, évitant le coût de calculs redondants.
Oui, mais c'est surtout théorique. Le compilo ne le fait pas tout seul et, en pratique, c'est du travail de la part du programmeur que de mémoiser.
_______________________________________________ Haskell-fr mailing list Haskell-fr@haskell.org http://www.haskell.org/mailman/listinfo/haskell-fr