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