关于 quote 的疑惑

我在看 Quote 使用的例子,其中'(quote foo) ⇒ 'foo 可是 quote 为啥变成引号了?同样 '(print "hello") ⇒ (print "hello") 是quote 有什么特殊吗,quote 的意思我是能理解,请求 quote 这个函数有什么特殊吗?

quote',所以 '(quote foo) 等同于 ''foo,求值之后消掉一个 quote,所以结果是 'foo

2赞

意思就是它就是一种语法。不是一个函数?

'xxx 的写法等价于 (quote xxx), 你可以说 'xxx 是 quote 函数的一种写法, 好比 python 里写个列表你可以用 list([1,2,3]), 也可以直接写 [1 2 3]

' 这个符号在 common lisp 里是个 reader macro,emacs lisp 里是个 special case。也就是所谓语法糖。 https://www.gnu.org/software/emacs/manual/html_node/cl/Porting-Common-Lisp.html

我大概知道了,我看 info 帮助里面 quote 是一个 Special Forms 和 if 这些是一样的