| 
Class Summary | 
| ActivationRecord | 
An ActivationRecord is an environment in which one new name is
 bound to some value, while all other names retain the values they
 have in some pre-existing outer environment, accessed via a nesting
 link. | 
| Application | 
An Application is an expression that when evaluated
 applies a function (found by evaluating the operator)
 to some argument value (found by evaluating the operand). | 
| Closure | 
A Closure is a function defined by code being interpreted (either a
 function definition or a lambda expression), rather than being one
 of the built-in functions such as +. | 
| Conditional | 
A Conditional is an if-then-else expression. | 
| Constant | 
A Constant is an expression with a directly specified value. | 
| FactorialTest | 
A class containing a main program for testing out the evaluator. | 
| InitialEnvironment | 
This is the outermost environment, containing predefined names. | 
| IntComparison | 
An abstract base class for integer comparison functions such as
 <. | 
| IntOperation | 
An abstract base class for integer arithmetic functions such as
 +. | 
| Variable | 
A Variable is a name used as an expression. |