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