1.7 变量

在 Emacs Lisp 中,一个符号既可以绑定函数定义,也可以绑定一个值,二者是相互独立的。函数定义是一组计算机可以执行的指令;而值则是数字、名称这类可以变化的内容(这也是这类符号被称为变量(variable)的原因)。符号的值可以是 Lisp 中的任意表达式,比如符号、数字、列表或字符串。拥有值的符号通常被称为变量(variable)

一个符号可以同时绑定函数定义和值,也可以只拥有其中一项。二者相互独立。这有点类似于 “Cambridge” 这个名称既可以指代美国马萨诸塞州的一座城市,也可以附加 “优秀编程中心” 这类描述信息。

另一种理解方式是把符号想象成一个多格抽屉。函数定义放在一个抽屉里,值放在另一个抽屉里,以此类推。存放值的抽屉里的内容可以被修改,而不会影响存放函数定义的抽屉,反之亦然。