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