Donc, je travaille à travers un exercice de première section du monde réel Haskell et je voulais savoir s'il existe une option dans GHCI pour le faire montrer une évaluation de la fonction avec des paramètres sur chaque appel récursif. Donc, par exemple, j'ai écrit une version simple de la "carte", et lorsque je l'applique, j'aimerais que GHCI affiche chaque appel récursif avec des arguments réels (et des résultats d'expression espérons-le). Quelque chose qui me permet de suivre ce qui se passe dans les coulisses. p>
P.s. Comme j'écris ceci, j'ai un sentiment que cela peut être limité par la paresse du modèle d'exécution de Haskell, corrigez-moi si je me trompe. P>
3 Réponses :
Je recommanderais de regarder la question Comment puis-je obtenir un appels de stack à Haskell? , et Réponse de Don Stewart Avec des guides liés sur la manière d'utiliser GHCI pour débogage p>
Vous pouvez utiliser HOTH pour cela:
. . . -- map2 { \ { \ 10 -> 11 , \ 9 -> 10 } (9 : 10 : []) -> 10 : 11 : [] } -- map2 { \ { \ 10 -> 11 } (10 : []) -> 11 : [] } -- map2 { \ _ [] -> [] }
J'utilise généralement DEBUG.TRACE :
(0,1,[2,3,4,5,6,7,8,9,10]) (1,2,[3,4,5,6,7,8,9,10]) (3,3,[4,5,6,7,8,9,10]) (6,4,[5,6,7,8,9,10]) (10,5,[6,7,8,9,10]) (15,6,[7,8,9,10]) (21,7,[8,9,10]) (28,8,[9,10]) (36,9,[10]) (45,10,[]) 55
Dupliqué possible de Comment puis-je obtenir un appels de CallStack à Haskell?
Pas vraiment un duplicata de cela.