Evaluation is the computational process that reduces expressions to
values. When performing evaluation, we need not only the expression to be
evaluated but also a collection of bindings that map names in the
expression to values. This collection of bindings, which is just a finite
mapping, is often referred to as an environment (for evaluation). For
instance, suppose that we want to evaluate the following expression:
We start with the empty environment ENV0; we evaluate
3.14 to
itself and
10.0 * 10.0 to
100.0 under the
environment ENV0; we then extend ENV0 to ENV1 with two bindings mapping
PI to
3.14 and
radius2 to
100.0; we then evaluate
PI * radius2 under ENV1
to
3.14 * radius2, then to
3.14 * 100.0, and
finally to
314.0, which is the value of the let-expression.