Sussman and Steele | December 22, 1975 | 39 | Implementation of the Interpreter |
expression as its value (can you see why?).
(DEFPROP CATCH ACATCH AINT) (DEFUN ACATCH () (SETQ **ENV** (CONS (LIST (CADR **EXP**) (LIST 'DELTA **CLINK**)) **ENV**) **EXP** (CADDR **EXP**) **PC** 'AEVAL))
PAIRLIS
is as in the LISP 1.5 Programmer's Manual [McCarthy][1].
(DEFUN PAIRLIS (X Y Z) (DO ((I X (CDR I)) (J Y (CDR J)) (L Z (CONS (LIST (CAR I) (CAR J)) L))) ((AND (NULL I) (NULL J)) L) (AND (OR (NULL I) (NULL J)) (ERROR '|WRONG NUMBER OF ARGUMENTS - PAIRLIS| **EXP** 'WRNG-NO-ARGS))))
AMACRO
s are fairly complicated beasties, and have very little to do with the basic issues of the implementation of SCHEME per se, so the code for them will not be given here. AMACRO
s behave almost exactly like MacLISP macros [Moon][2].
This is the end of the SCHEME interpreter!