# 10.2 引用（Quoting）（DONE）

特殊表达式 quote 单纯返回其参数，不做求值和任何改变。这提供了一种构造常数变量和列表的方法。（没有必要在诸如 数字， 字符串，向量 这样的自求值对象前添加 quote）

Special Form: quote object

这个特殊表达式单纯返回 object，而不去做任何求值。返回的值可能会出于某种目的转换为不可变的共享结构。详情查阅自求值表达式。

因为在代码中， quote 太常用了，Lisp 专门提供了一个方便的写法。单个 单引号 ("'")后紧跟对象，这样的结构会展开为一个列表，其中第一个元素为 quote，而第二个元素为 该对象。因此，'x 是 （quote x) 的一种一缩写。

这里有一些使用qoute的例子：

```
(quote (+ 1 2))
     ⇒ (+ 1 2)
(quote foo)
     ⇒ foo
'foo
     ⇒ foo
''foo
     ⇒ 'foo
'(quote foo)
     ⇒ 'foo
['foo]
     ⇒ ['foo]
```

需要注意的是，表达式 (list '+ 1 2) 和 '(+ 1 2) 看起来生成的列表和 (+ 1 2) 是 equal 的，但前者生成的是可变列表，而后者生成的是不可变的列表，通常会被转换成共享结构。详情查阅自求值表达式。

另一个引用结构为 function(查阅 匿名函数)，这个结构用于引用即将被编译的 Lisp  lambda表达式。还有一个引用结构为 "\`"(查阅 反引用)，这个结构用于引用 列表中部分结构，没有被引用的部分依旧会被求值并替换。
