• [^] # Re: Dernier cas

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

    En fait, c’est un problème d’interpréteur... en prenant le même code dans un fichier : linuxfr.hs

    Prelude> :l linuxfr.hs
    [1 of 1] Compiling Main ( linuxfr.hs, interpreted )
    Ok, modules loaded: Main.
    *Main> f [1,2]
    [0.3333333333333333,0.6666666666666666]
    *Main> f [1..10]
    [1.818181818181818e-2,3.636363636363636e-2,5.454545454545454e-2,7.272727272727272e-2,9.090909090909091e-2,0.10909090909090909,0.12727272727272726,0.14545454545454545,0.16363636363636364,0.18181818181818182]
    *Main>

    Quand je définie tout dans l’interpréteur ça ne marche pas... bon, ce n’est pas grave. Merci pour la démonstration.

    Source :

    g s l = ((map (/s) l),sum l)
    f l = let (res,s) = g s l in res
    main = putStrLn $ show $ f [1,2]