#

## 3.1 Evaluation

Execution of code can be accomplished by a variety of means ranging from direct interpretation of a form representing a program to invocation of compiled code produced by a compiler.

Evaluation is the process by which a program is executed in Common Lisp. The mechanism of evaluation is manifested both implicitly through the effect of the Lisp read-eval-print loop, and explicitly through the presence of the functions eval, compile, compile-file, and load. Any of these facilities might share the same execution strategy, or each might use a different one.

The behavior of a conforming program processed by eval and by compile-file might differ; see Section 3.2.2.3 (Semantic Constraints).

Evaluation can be understood in terms of a model in which an interpreter recursively traverses a form performing each step of the computation as it goes. This model, which describes the semantics of Common Lisp programs, is described in Section 3.1.2 (The Evaluation Model).

## 3.1.1 Introduction to Environments

## 3.1.2 The Evaluation Model

## 3.1.3 Lambda Expressions

## 3.1.4 Closures and Lexical Binding

## 3.1.5 Shadowing

## 3.1.6 Extent

## 3.1.7 Return Values

Copyright 1996-2005, LispWorks Ltd. All rights reserved.