# 10.2.1 自求值表达式（DONE）

所有不是 列表(list) 和 符号(symbol) 的表达式均为 自求值表达式(self-evaluation form)。 顾名思义，自求值表达式的求值结果就是它们本身。也就是说，数字25 求值后 得到 25，字符串 "foo" 求值后得到字符串 "foo"。类似的，对向量求值并不会对其组成元素求值——它会返回向量本身。

```
'123               ; A number, shown without evaluation.
     ⇒ 123
123                ; Evaluated as usual—result is the same.
     ⇒ 123
(eval '123)        ; Evaluated "by hand"—result is the same.
     ⇒ 123
(eval (eval '123)) ; Evaluating twice changes nothing.
     ⇒ 123
```

自求值表达式会生成一个融入程序的值。因此你不应当使用 setcar， aset 或者类似的操作去修改它们。Lisp 解释器很可能会在求值后，将这些自求值表达式作为共享的结构，生成统一的常数类型。查阅 可变性 章节。

由于 Lisp 中数字，字符，字符串以及向量都是自求值表达式，我们通常可以直接字面地写它们。不过，有不少类型是缺少读取语法，没有办法直接字面地写。此时，我们可以借用其他 Lisp 表达式 去构造这些结构，这里有一个例子：

```
;; Build an expression containing a buffer object.
(setq print-exp (list 'print (current-buffer)))
     ⇒ (print #<buffer eval.texi>)
;; Evaluate it.
(eval print-exp)
     -| #<buffer eval.texi>
     ⇒ #<buffer eval.texi>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://emacs-lisp.ivory.cafe/qiu-zhi/biao-da-shi/10.2.1-zi-qiu-zhi-biao-da-shi-done.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
