This chapter describes what happens when you evaluate the various
types of objects. As a general introduction, consider the following
• Data-class objects.
This class comprises real numbers, complex num-
bers, binary integers, strings, arrays, and lists. The "value" of a data
object is exactly what
• Name-class objects.
This class comprises global names and local
names. The "value" of a name is generally the contents of a
• Procedure-class objects.
This class comprises algebraics and pro-
grams. The "value" of a procedure is the result of whatever process
In a rough way, these classes define what happens when you evalu-
ate an object: it returns itself, or the contents of a variable, or the
result of a process. It's not quite that simple, though, and more details
are provided below for each object class.
This is the simplest class of objects. Evaluating any data-class object
returns the same object.
Note that lists are all-purpose data objects, since they can contain any
object type. Consider a list of names: the names are protected from
evaluation by the list, and they can't be evaluated until they're re-
moved from the list.
Generally, the "value" of a name is the contents of a variable. Evalua-
tion of local names is simple and is described first, followed by
evaluation of global names.