Go to the first, previous, next, last section, table of contents.

Identifiers and Variables

In isolation, a textual identifier (name) such us as foo isn't even a variable.

The static scoping structure of a program gives names a certain aspect of meaning, and the dynamic execution of the program gives them more meaning.

In isolation, foo doesn't mean anything. Used in a program, it can be the name of a variable. At different places in a program, it can be the name of different variables, e.g., a toplevel variable, or a local variable in one or more procedures.

In Scheme an identifier such as foo may not represent a variable at all. In the quote expressions 'foo and '(baz foo bar) it identifies a symbol object, but in an entirely different sense than variable binding. It doesn't name a variable foo, or a variable whose binding holds a pointer to foo---it is a literal representation of a pointer to the unique symbol object whose printed representation is foo.


Go to the first, previous, next, last section, table of contents.