* Evaluation* is the process by which Lisp determines the value
of an expression. Expressions are evaluated using the following
recursive algorithm:

- If the expression to be evaluated is a number,
`T`, or`NIL`, its value is the expression itself. - If the expression is
`(QUOTE x)`, its value is`x`. - If the expression is a symbol, its value is the value
of the symbol (the symbol's
*binding*). - Otherwise, the expression must be a list that represents a
function call:
- Evaluate each argument of the function call, in left-to-right
order.
- Call the function with the resulting values of the arguments.
- The value returned by the function is the value of the expression.

- Evaluate each argument of the function call, in left-to-right
order.