This page has been validated.
Contents
Introduction | 1 | |
Modularity | 1 | |
LISP-like Languages | 2 | |
Structure of the Paper | 2 | |
Part Zero — LISP and Interpreters | 4 | |
Recursion Equations | 4 | |
An Interpreter for LISP Recursion Equations | 7 | |
Part One — Variable Scoping Disciplines | 13 | |
Procedures as Data | 13 | |
Local Procedures | 18 | |
Lexical Scoping | 21 | |
Top Levels versus Referential Transparency | 25 | |
Part Two — State | 31 | |
Decomposition of State | 31 | |
Side Effects and Local State | 32 | |
Side Effects in the Interpreter | 34 | |
Equipotency of SETQ and RPLACA
|
38 | |
Side Effects and Equality | 39 | |
Dynamic Scoping as a State-Decomposition Discipline | 43 | |
Summary | 51 | |
Acknowledgements | 52 | |
Notes | 53 | |
{Can George do Better?} | 53 | |
{Debugging} | 53 | |
{Driver Loop with Side Effects} | 54 | |
{EVALQUOTE }
|
55 | |
{Gaussian} | 56 | |
{LABELS }
|
57 | |
{LABELS with Side Effects}*
|
59 | |
{Primitive Operators} | 60 | |
{PROGN Wizadry}
|
61 | |
{QUOTE Mapping}
|
63 | |
{QUOTE Shafts the Compiler}
|
63 | |
{RPLACA Can Alter CAR Instead}
|
64 | |
{S-expression Postulates and Notation} | 65 | |
{This ain't A-lists} | 66 | |
{Value Quibble} | 67 | |
{Weber} | 68 | |
{Y-operator} | 70 | |
References | 71 |