]> git.rkrishnan.org Git - sicp.git/blobdiff - src/sicp/ex4_33.rkt
Solution to 4.33. This had been difficult to get right, though conceptually it was
[sicp.git] / src / sicp / ex4_33.rkt
diff --git a/src/sicp/ex4_33.rkt b/src/sicp/ex4_33.rkt
new file mode 100644 (file)
index 0000000..bfe42a5
--- /dev/null
@@ -0,0 +1,18 @@
+#lang racket
+
+(require "eval-4.33.rkt")
+
+(define env1 (make-environment))
+(eval '(define (cons a b)
+              (lambda (m) (m a b)))
+           env1)
+(eval '(define (car z)
+              (z (lambda (a b) a)))
+           env1)
+(eval '(define (cdr z)
+              (z (lambda (a b) b)))
+           env1)
+
+
+(force-it (eval '(car (quote (1 2 3))) env1))
+(force-it (eval '(car (quote (a b c))) env1))
\ No newline at end of file