So far I have only discussed a few of the various data types available and how the Lisp reader can convert textual descriptions of these types into Lisp objects. Obviously there has to be a way of actually computing something -- it would be difficult to write a useful program otherwise.
What sets Lisp apart from other languages is that in Lisp there is no difference between programs and data: a Lisp program is just a sequence of Lisp objects which will be interpreted when the program is run.
The subsystem which does this interpreting is called the
Lisp evaluator and each expression to be evaluated is called
a form. The evaluator (the function eval) examines the
structure of the form that is applied to and computes the value of the
form within the current environment.
A form can be any type of data object; the only types which the evaluator treats specially are symbols (which stand for variables) and lists, anything else is returned as-is (and is called a self-evaluating form).
eval is the basic function for interpreting Lisp objects.
Go to the first, previous, next, last section, table of contents.