Allegro CL,调试功能一步一步

时间:2017-07-25 14:56:32

标签: debugging lisp allegro-cl

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

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

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

(+ 1
   (* 2 3
      3)
)

然后:

(+ 1
   18)

最后:

19

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

感谢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