Page:Scheme - An interpreter for extended lambda calculus.djvu/36



The purpose of  is to gobble up the value, passed in the   register, of the subexpression just evaluated. It saves this value on the list in the  register, pops off the unevaluated subexpression from the   register, and dispatches back to.

Here is the code for the various s. On arrival at the instruction for an ,   contains the expression whose functional position contains the name of the. None of the arguments have been evaluated, and no new control frame has been created. Note that each  is defined by the presence of an   property on the property list of the LISP atom which is its name. The value of this property is the  function which is the first "instruction" of the.

is similar to the LISP function ; it evaluates its argument, which should result in a s-expression, which is then fed back into the SCHEME expression evaluator.