Je ne connais pas Haskell mais certaines techniques comme le tail call optimization me séduisent. Du coup sur l'exemple de la fonction fac, je me demande si Haskell sait transformer ça en fonction tail-récursive ou s'il faut l'aider un peu en définissant d'autres fonctions ?
Ca serait triste qu'Haskell n'y arrive pas, alors que ca ne pose aucun problème à gcc ou n'importe quel compilo de n'importe quel langage supportant la fonctionnalité. fac correspond exactement à la définition d'une fonction tail recursive. J'aime bien l'annotation @tailrec de scala qui fait hurler le compilateur si la fonction ne répond pas au contrat. Ca permet d'éviter les énormes surprises à cause d'un petit changement qui casse tout...
[^] # Re: Tail-call optimization de la factorielle ?
Posté par ckyl . En réponse à la dépêche Sortie du livre « Parallel and Concurrent Programming in Haskell ». Évalué à 7.
Ca serait triste qu'Haskell n'y arrive pas, alors que ca ne pose aucun problème à gcc ou n'importe quel compilo de n'importe quel langage supportant la fonctionnalité.
faccorrespond exactement à la définition d'une fonction tail recursive. J'aime bien l'annotation@tailrecde scala qui fait hurler le compilateur si la fonction ne répond pas au contrat. Ca permet d'éviter les énormes surprises à cause d'un petit changement qui casse tout...