• [^] # Re: pour implémenter : enrober dans une fonction

    Posté par . En réponse au journal Haskell -- Évaluation paresseuse. Évalué à 0.

    Bon, comme dit dans mon autre commentaire, je ne connais pas Haskell, je risque donc de dire des énormités, merci de m'en excuser (et de m'expliquer, c'est comme ça qu'on progresse !)

    Mais je ne comprend pas comment ça peut fonctionner, aussi bien en interne (comment haskell gère des résultats non évalués) que ton bout de code final

    f l = let (res, s') = g s' l
     in res

    Ici, le s' que tu passes en argument , il vient d'où ?
    (car si je comprend bien,

    (res, s') = g s' l

    c'est l'évaluation de la fonction g, avec comme argument s' et l, retournant res et s'.)

    Le 2e point que je ne capte pas, c'est :

    La fonction g va se contenter de crée une liste qui contient :
    [L0/s,L1/s,...]
    Mais elle contient les fonctions non évaluées.

    La liste d'origine est donc parcourue pour créer la 2nde liste, contenant les fonctions non évaluées. Mais pour évaluer les résultats, la 2nde liste devra aussi être parcourue, non ?