Appendix 2 The INTERLISP Interpreter The flow chart presented below describes the operation of the INTERLISP interpreter, and corresponds to the m-expression definition of the LISP 1.5 interpreter to be found in the LISP 1.5 manual, [McC1]. Note that car of a form must be a function; it cannot evaluate to a function. If car of a form is atomic, its function cell must contain (a) an S-expression of the form (LAMBDA ...) or (NLAMBDA ...); or (b) a pointer to compiled code; or (c) a SUBR definition (see Section 8); Otherwise the form is considered faulty. If car of a form is an S-expression beginning with LAMBDA or NLAMBDA, the S-expression is the function. If car of the form begins with FUNARG, the funarg mechanism is invoked (see Section 11). Otherwise the form is faulty. A2.1 Figure A2-1 Note: variables c and d are for description only; they are not actually bound as variables. A2.2