GNU Info

Info Node: (emacs-lisp-intro.info)Symbols as Chest

(emacs-lisp-intro.info)Symbols as Chest


Next: List Exercise Prev: Lists diagrammed Up: List Implementation
Enter node , (file) or (file)node

Symbols as a Chest of Drawers
=============================

   In an earlier section, I suggested that you might imagine a symbol as
being a chest of drawers.  The function definition is put in one
drawer, the value in another, and so on.  What is put in the drawer
holding the value can be changed without affecting the contents of the
drawer holding the function definition, and vice-versa.

   Actually, what is put in each drawer is the address of the value or
function definition.  It is as if you found an old chest in the attic,
and in one of its drawers you found a map giving you directions to
where the buried treasure lies.

   (In addition to its name, symbol definition, and variable value, a
symbol has a `drawer' for a "property list" which can be used to record
other information.  Property lists are not discussed here; see Note:
Property Lists.)

   Here is a fanciful representation:


                 Chest of Drawers            Contents of Drawers
     
                 __   o0O0o   __
               /                 \
              ---------------------
             |    directions to    |            [map to]
             |     symbol name     |             bouquet
             |                     |
             +---------------------+
             |    directions to    |
             |  symbol definition  |             [none]
             |                     |
             +---------------------+
             |    directions to    |            [map to]
             |    variable value   |             (rose violet buttercup)
             |                     |
             +---------------------+
             |    directions to    |
             |    property list    |             [not described here]
             |                     |
             +---------------------+
             |/                   \|






automatically generated by info2www version 1.2.2.9