Bonjour,
Je cherche à reproduire manuellement le comportement de la fonction trace de Lisp sur une fonction récursive simple, c'est-à-dire imprimer à chaque appel la valeur de l'argument et en sortie la valeur retournée. Voici le début de mon expérimentation:
Ainsi j'obtiens la liste des appels.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 (defun fact (n) (format t "Entering fact ~A~%" n) (if (> n 0) (* n (fact (- n 1))) 1))
CL-USER> (fact 3)
Entering fact 3
Entering fact 2
Entering fact 1
Entering fact 0
6
Mon problème concerne la liste des valeurs retournées. Comment imprimer par effet la valeur retournée par une fonction avant de sortir de celle-ci ?





Répondre avec citation
Partager