You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
6
6
7
-
Changes:
7
+
Tested with [Racket](https://racket-lang.org/) 8.3.
8
+
9
+
Changes from the original code:
8
10
9
11
* function names changed to ALL-CAPS to avoid confusion with
10
12
functions provided by Racket;
@@ -13,7 +15,7 @@ Changes:
13
15
* APPLY rewritten to avoid the need for `primitive-procedure?`;
14
16
the corresponding function in Racket is `primitive?` but it is not
15
17
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.
0 commit comments