在早期的一节中,我建议你将符号想象成一个抽屉式储物柜。一个抽屉放置函数定义,另一个抽屉放置值,依此类推。放在存放值的抽屉中的内容可以更改,而不影响放置函数定义的抽屉中的内容,反之亦然。
实际上,放在每个抽屉中的是值或函数定义的地址。就好像你在阁楼上发现了一只旧箱子,在其中一个抽屉里找到了一张地图,指引你找到埋藏的宝藏的地方。
(除了名称、符号定义和变量值之外,符号还有一个用于记录其他信息的属性列表抽屉。这里不讨论属性列表;请参阅(elisp,GNU Emacs Lisp参考手册)Property Lists。)
这里是一个幻想的表示:
抽屉式储物柜 抽屉的内容
__ o0O0o __
/ \
---------------------
| 符号名称的方向 | [指向地图]
| | 花束
+---------------------+
| 符号定义的方向 |
| | [无]
+---------------------+
| 变量值的方向 | [指向地图]
| | (玫瑰 紫罗兰 毛茛)
+---------------------+
| 属性列表的方向 | [这里不描述]
| |
+---------------------+
|/ \|