使用 CCHICKEN 可视化递归函数调用的正确方法是什么?



我是 scheme 的新手(我的 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 中,是否有一种更惯用的方法可以在每次调用函数时获取调试输出,以便我可以看到对函数的调用进度如何?

不,我基本上也是这样做的。 如果你想要更方便的东西,你可以尝试跟踪蛋,它可以自动给你调用嵌套和输入参数。

如果你想变得更漂亮一点,你可以使用 CHICKEN 附带的"羽毛"调试器。

相关内容

最新更新