为什么在 Common Lisp (CCL REPL) 中评估 (list + 1 2)
返回 ('(+ 1 2) 1 2)
?
更多:好的,我看到 +
实际上计算了最后的 REPL 结果,但我还有一个问题:这是一个标准的 CL REPL 东西吗,有 +
等于最后一个结果,还是特定于 Clozure?
最佳答案
你会发现,在REPL中,变量*
保存的是最后的结果,+
保存的是最后的计算形式。
例如:
> (+ 1 2)
=> 3
> +
=> (+ 1 2)
> (+ 2 3)
=> 5
> *
=> 5
是的,这些是标准的,并且在 HyperSpec. 中
如果你想创建一个包含符号 +
的列表,而不是它的值,你需要引用它,例如:'+
,或 (引用+)
。
关于lisp - 为什么 (list + 1 2) 在 Common Lisp 中计算为 ('(+ 1 2) 1 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15943060/