debugging - Allegro CL,逐步调试功能

标签 debugging lisp allegro-cl

<分区>

我试图理解一个函数在 Lisp 中是如何工作的,我很久以前使用过 Allegro Cl,我记得它在 REPL 中有一个特殊的函数,可以让你逐步了解一个函数是如何工作的,比如Matlab。例如,如果你有这个功能:

(+ 1
   (* 2 3
      (/ 6 2)
    ) 
)

您可以逐步查看每个功能,例如:

(+ 1
   (* 2 3
      3)
)

然后:

(+ 1
   18)

最后:

19

非常感谢。

最佳答案

感谢 jkiiski,

逐步显示函数的代码是:

(step (+ 1 (* 2 3 (/ 6 2))))

这非常详细地展示了 Lisp 如何解析所有数据并评估函数。

经过许多步骤后,它给出:

[STEP] CG-USER(2): 
   result 6: 2
  6: (/ 6 2)
[STEP] CG-USER(2): 
    result 5: 18
   result 4: 18
  result 3: 18
 result 2: 18
2: (+ 1 18)
[STEP] CG-USER(2): 
 result 2: 19
result 1: 19

关于debugging - Allegro CL,逐步调试功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45306915/

相关文章:

windows - 在 Common Lisp 中创建隐藏文件

common-lisp - 我可以在 SBCL 或 CLISP 中使用由 Allegro Common Lisp 制作的 C++ 包装器吗

asp.net - 如何阻止 MonoDevelop 在调试时打开 Safari 窗口?

c++ - 已加载本地生成的小型转储,但远程生成的小型转储无法加载调用堆栈和符号

css - 悬停错误 :before On Safari

lisp - Dribble 正在生成空的输出文件

emacs - 在 ALLEGRO-CL 免费版中安装 Quicklisp 库

java - 如何在IntelliJ中调试Vaadin应用程序

Scheme 在返回 true 之前匹配列表中的所有给定值

arguments - Common Lisp - 给出 &rest 列表作为参数