Je suis novice en programmation fonctionnelle et j'aimerais déboguer une fonction récursive pour voir pourquoi j'obtiens une valeur particulière en tant que valeur de retour. Comment puis-je accomplir cela? J'ai trouvé quelques réponses sur ce site aussi bien qu'en ligne, mais je ne peux pas m'empêcher de penser à faire ça. Toute aide serait appréciée.Débogage Haskell
recur = \a -> if a>100 then a-10 else recur (recur (a+11))
Vous ne pouvez vraiment pas déboguer en Haskell dans le sens traditionnel du terme, parce que Haskell, étant une langue purement fonctionnelle, ne change pas d'état pendant l'exécution. Cela dit, je trace généralement à travers des algorithmes récursifs sur papier. – Tetramputechture
J'ai essayé de le tracer sur du papier mais il en résulte une boucle infinie. Mais quand j'exécute la fonction en haskell, ça renvoie le résultat. Donc, il doit y avoir un point où Haskell arrête d'évaluer l'argument que je passe et je ne sais pas lequel. – user30646
@Tetramputechture Pas vraiment. Il y a ['Debug.Trace'] (https://hackage.haskell.org/package/base-4.8.1.0/docs/Debug-Trace.html), et il y a aussi les commandes de débogage dans GHCi. Cela dit, les algorithmes de traçage sur papier sont en effet une très bonne suggestion. – duplode