• [^] # Re: Tail-call optimization de la factorielle ?

    Posté par . En réponse à la dépêche Sortie du livre « Parallel and Concurrent Programming in Haskell ». Évalué à 4.

    De façon générale, il vaut mieux laisser le compilateur faire son boulot pour des cas triviaux comme celui-là. Sur mon installation (GHC 7.6.3) je n’ai pas de différence notables entre tes deux versions, et la version que j’ai donnée tout en haut est plus rapide en désactivant les optimisations. En activant les optimisations il n’y a pas de différence entre toutes ces versions.

    Si tu avais un débordement de pile, le runtime te le dirait avec un message du genre :

    Stack space overflow: current size 8388608 bytes.
    Use `+RTS -Ksize -RTS' to increase it.

    Effectivement, si on ne comprend pas bien comment marche l’évaluation dans Haskell, ça peut arriver, et l’exemple le plus parlant pour le montrer et la différence entre foldl et foldr.