为什么(list+;12)在Common Lisp中计算为(';(+;12)12)
为什么在公共Lisp(CCL REPL)中计算为什么(list+;12)在Common Lisp中计算为(';(+;12)12),lisp,common-lisp,Lisp,Common Lisp,为什么在公共Lisp(CCL REPL)中计算(list+12)会返回('(+12)12) 更多:好的,我看到+实际上计算的是最后一个REPL结果,但我仍然有一个问题:这是一个标准的CL-REPL事情,让+等于最后一个结果,还是特定于Clozure?你会发现,在REPL中,*变量保存最后一个结果,而+保存最后一次计算的表单 例如: > (+ 1 2) => 3 > + => (+ 1 2) > (+ 2 3) => 5 > * =>
(list+12)
会返回('(+12)12)
更多:好的,我看到
+
实际上计算的是最后一个REPL结果,但我仍然有一个问题:这是一个标准的CL-REPL事情,让+
等于最后一个结果,还是特定于Clozure?你会发现,在REPL中,*
变量保存最后一个结果,而+
保存最后一次计算的表单
例如:
> (+ 1 2)
=> 3
> +
=> (+ 1 2)
> (+ 2 3)
=> 5
> *
=> 5
是的,这些是标准的,在
如果您希望创建一个包含符号
+
,而不是其值的列表,则需要引用它,例如:'+
,或(quote+)
Common Lisp Hyperspec是Common Lisp语言的优秀参考。它有参考价值。甚至对于非字母符号:此外,定义了***
、***
、++
和++
,允许您引用当前值之前的*
和+
两个值。