为什么(list + 1 2)
在 Common Lisp (CCL REPL) 中进行评估会返回('(+ 1 2) 1 2)
?
更多:好的,我看到它+
实际上评估了最后一个 REPL 结果,但我仍然有一个问题:这是一个标准的 CL REPL 东西,+
等于最后一个结果,还是 Clozure 特定的?
为什么(list + 1 2)
在 Common Lisp (CCL REPL) 中进行评估会返回('(+ 1 2) 1 2)
?
更多:好的,我看到它+
实际上评估了最后一个 REPL 结果,但我仍然有一个问题:这是一个标准的 CL REPL 东西,+
等于最后一个结果,还是 Clozure 特定的?
您会发现,在 REPL 中,变量*
保存了最后的结果,并+
保存了最后的评估形式。
例如:
> (+ 1 2)
=> 3
> +
=> (+ 1 2)
> (+ 2 3)
=> 5
> *
=> 5
是的,这些是标准的,并且在HyperSpec 中。
如果您希望创建一个包含符号+
而不是其值的列表,则需要引用它,例如:'+
或(quote +)
。