lisp - 为什么 (list + 1 2) 在 Common Lisp 中计算为 ('(+ 1 2) 1 2)

标签 lisp common-lisp

为什么在 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/

相关文章:

lisp - Lisp 中的快速排序奇怪的行为?

string - 基于字符串调用函数

emacs - 为什么人们说 "emacs is good for writing lisp program because it' 是用 emacs lisp 编写的”?

apache - 如何使用 sbcl+restas+apache 运行网络应用程序?

date - 在 Common Lisp 中格式化当前系统日期

Lisp 代码格式

lisp - 剪辑 : remove from list of list

Lisp 风格 : setq vs. setf

lisp:捕获标准输出和标准错误,将其存储在单独的变量中

lisp - Sharpsign 等号阅读器宏示例?