6
votes

GHCI affichant une pile d'exécution

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.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.


2 commentaires

Dupliqué possible de Comment puis-je obtenir un appels de CallStack à Haskell?


Pas vraiment un duplicata de cela.


3 Réponses :



3
votes

Vous pouvez utiliser HOTH pour cela:

.
.
.
-- map2
{ \ { \ 10  -> 11
    , \ 9  -> 10
    } (9 : 10 : []) 
    -> 10 : 11 : []
}
-- map2
{ \ { \ 10  -> 11
    } (10 : []) 
    -> 11 : []
}
-- map2
{ \ _ []  -> []
}


0 commentaires

3
votes

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


0 commentaires