lisp - Lisp 中的 1 和 '1 有什么区别?

标签 lisp clojure scheme common-lisp quote

我从来没有真正想过一个符号在 Lisp 中是否可以是一个数字,所以我今天玩了一下:

> '1
1
> (+ '1 '1)
2
> (+ '1 1)
2
> (define a '1)
> (+ a 1)
2

上面的代码是scheme,但是在Common Lisp和Clojure中似乎也差不多。 1 和引用的 1 有什么区别吗?

最佳答案

在 Common Lisp 中,'1 是 (QUOTE 1) 的简写。计算时,(QUOTE something) 返回未计算的 something 部分。但是,1 个已评估和 1 个未评估之间没有区别。

所以对读者来说是有区别的:'1 读作 (QUOTE 1) 和 1 读作 1。但是在求值时没有区别。

关于lisp - Lisp 中的 1 和 '1 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966765/

相关文章:

Emacs/普通口齿不清 : Quote variable's value

emacs - 有这么多括号,你如何有效地输入 lisp?

clojure - Clojure 中的生产者消费者队列

audio - 为什么我的 Clojure 项目在 Raspberry Pi 上运行缓慢?

scheme - 计划中的原子是什么?

list - 获取列表中的第 N 个元素作为列表而不是 LISP 中的数字?

lisp - SBCL 中的 exp 是错误的?

clojure - 在 Clojure 中如何迭代直到达到固定点?

lisp - 这个简单的 'buggy-sum' 代码有什么问题?

计划和让错误