Common Lisp the Language
2nd Edition
Next: The Property List
Up: Common Lisp the Language
Previous: Type Declaration for
A
Lisp symbol is a data object that has three user-visible
components:
-
The property list is a list that effectively provides each symbol
with many modifiable named components.
-
The print name must be a string
which is the sequence of
characters used to identify the symbol. Symbols are of great use
because a symbol can be located once its name is given
(typed
say
on a keyboard).
One may ordinarily not alter a symbol's print name.

X3J13 voted in March 1989 (CHARACTER-PROPOSAL)
to specify it is an error to alter a print name.
-
The package cell must refer to a package object.
A package is a data structure
used to locate a symbol once given the symbol's name.
A symbol is uniquely identified
by its name only when considered relative to a package. A symbol may
appear in many packages
but it can be owned by at most one package.
The package cell points to the owner
if any.
Package cells are discussed along with packages in chapter 11.
A symbol may actually have other components for use by the
implementation. One of the more important uses of symbols is as
names for program variables; it is frequently desirable for the
implementor to use certain components of a symbol to implement
the semantics of variables. See symbol-value
and symbol-function.
However
there are several possible
implementation strategies
and so such possible components are not
described here.
Next: The Property List
Up: Common Lisp the Language
Previous: Type Declaration for
AI.Repository@cs.cmu.edu