为什么(list+;12)在Common Lisp中计算为(';(+;12)12)

为什么(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 > * =>

为什么在公共Lisp(CCL REPL)中计算
(list+12)
会返回
('(+12)12)



更多:好的,我看到
+
实际上计算的是最后一个REPL结果,但我仍然有一个问题:这是一个标准的CL-REPL事情,让
+
等于最后一个结果,还是特定于Clozure?

你会发现,在REPL中,
*
变量保存最后一个结果,而
+
保存最后一次计算的表单

例如:

> (+ 1 2)
  => 3
> +
  => (+ 1 2)
> (+ 2 3)
  => 5
> *
  => 5
是的,这些是标准的,在


如果您希望创建一个包含符号
+
,而不是其值的列表,则需要引用它,例如:
'+
,或
(quote+)

Common Lisp Hyperspec是Common Lisp语言的优秀参考。它有参考价值。甚至对于非字母符号:此外,定义了
***
***
++
++
,允许您引用当前值之前的
*
+
两个值。