Skip to content

Commit ae38c39

Browse files
committed
added images with the original code
1 parent 31689b1 commit ae38c39

File tree

5 files changed

+10
-8
lines changed

5 files changed

+10
-8
lines changed
Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
# Concrete Metacircular Evaluator
22

3-
Code adapted from the "evaluator with concrete syntax" listed on pages 121-122
4-
of the "Instructor's Manual to accompany Structure and Interpretation of
5-
Computer Programs" by Julie Sussman with Harold Abelson and Gerald Jay Sussman.
3+
Code adapted from the "evaluator with concrete syntax" listed on pages 121-122 of
4+
["Instructor's Manual to accompany Structure and Interpretation of Computer Programs"](https://mitpress.mit.edu/books/instructors-manual-ta-structure-and-interpretation-computer-programs-second-edition)
5+
by Julie Sussman with Harold Abelson and Gerald Jay Sussman.
66

7-
Changes:
7+
Tested with [Racket](https://racket-lang.org/) 8.3.
8+
9+
Changes from the original code:
810

911
* function names changed to ALL-CAPS to avoid confusion with
1012
functions provided by Racket;
@@ -13,7 +15,7 @@ Changes:
1315
* APPLY rewritten to avoid the need for `primitive-procedure?`;
1416
the corresponding function in Racket is `primitive?` but it is not
1517
useful to us because `(primitive? +)` returns `#f`, so we can't use it
16-
to distinguish user-defined procedures from the built-ins.
17-
18-
Tested in Racket 8.3.
19-
18+
to distinguish user-defined procedures from those predefined by Racket;
19+
* added MAKE-BUILTINS to create an environment with predefined procedures;
20+
* added `concrete-test.rkt` with `rackunit` tests;
21+
* added `(provide ...)` to make `concrete.rkt` functions available for testing.
182 KB
Loading
188 KB
Loading
117 KB
Loading
238 KB
Loading

0 commit comments

Comments
 (0)