我是新手(我的Lisp经验仅限于配置emacs),并且我试图更好地理解递归和注意事项。我想获得调试输出,显示对函数的每次调用,以便更好地可视化递归。
闲逛,我想出了
(define (last lst)
(if (null? (cdr lst))
(car lst)
(last (cdr lst))))
获取列表的最后一个成员。它似乎有效。为了调试,我想出了
(define (last lst)
(print "Debug: " lst)
(if (null? (cdr lst))
(car lst)
(last (cdr lst))))
(last '(a b c d))
的结果
Debug: (a b c d)
Debug: (b c d)
Debug: (c d)
Debug: (d)
在CHICKEN中,是否有更惯用的方法来获取对函数的每次调用的调试输出,所以我可以看到对函数的调用如何进行?
答案 0 :(得分:1)
不,基本上我也是这样做的。如果您想要更方便的方法,可以尝试使用trace egg,它可以自动为您提供调用嵌套和输入参数。
如果您想变得更高级,可以使用CHICKEN随附的"Feathers"调试器。