0

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

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

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

(+ 1
   (* 2 3
      3)
)

接着:

(+ 1
   18)

最后:

19

提前谢谢了。

4

1 回答 1

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
于 2017-07-25T15:26:19.257 回答