<分区>
我试图理解一个函数在 Lisp 中是如何工作的,我很久以前使用过 Allegro Cl,我记得它在 REPL 中有一个特殊的函数,可以让你逐步了解一个函数是如何工作的,比如Matlab。例如,如果你有这个功能:
(+ 1
(* 2 3
(/ 6 2)
)
)
您可以逐步查看每个功能,例如:
(+ 1
(* 2 3
3)
)
然后:
(+ 1
18)
最后:
19
非常感谢。
<分区>
我试图理解一个函数在 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/