Node:Evaluation, Next:, Previous:Lisp Interpreter, Up:List Processing

1.6 Evaluation

When the Lisp interpreter works on an expression, the term for the activity is called evaluation. We say that the interpreter `evaluates the expression'. I've used this term several times before. The word comes from its use in everyday language, `to ascertain the value or amount of; to appraise', according to Webster's New Collegiate Dictionary.

After evaluating an expression, the Lisp interpreter will most likely return the value that the computer produces by carrying out the instructions it found in the function definition, or perhaps it will give up on that function and produce an error message. (The interpreter may also find itself tossed, so to speak, to a different function or it may attempt to repeat continually what it is doing for ever and ever in what is called an `infinite loop'. These actions are less common; and we can ignore them.) Most frequently, the interpreter returns a value.

At the same time the interpreter returns a value, it may do something else as well, such as move a cursor or copy a file; this other kind of action is called a side effect. Actions that we humans think are important, such as printing results, are often "side effects" to the Lisp interpreter. The jargon can sound peculiar, but it turns out that it is fairly easy to learn to use side effects.

In summary, evaluating a symbolic expression most commonly causes the Lisp interpreter to return a value and perhaps carry out a side effect; or else produce an error.