This
chapter
describes
what
happens
when
you evaluate
the
various
types
of
objects. As a
general
introduction,
consider
the
following
ob-
ject
classes.
• 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
it
contains.
• Name-class
objects.
This class comprises global
names
and
local
names.
The
"value"
of
a
name
is generally
the
contents
of
a
variable.
•
Procedure-class
objects. This class comprises algebraics
and
pro-
grams.
The
"value"
of
a
procedure
is
the
result
of
whatever
process
it defines.
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.
Data-Class Objects
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.
Name-Class
Objects
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.
23:
Evaluation
199