Implement 5.23

This commit is contained in:
2021-04-04 11:46:15 -04:00
parent 6cfaff4c07
commit d0d650ad62
3 changed files with 82 additions and 5 deletions

View File

@@ -3,15 +3,32 @@
(load "misc/sicp-eceval.scm")
(define the-global-environment (setup-environment))
(set-register-contents! eceval 'exp '(+ 1 2))
(set-register-contents! eceval 'exp '(if false 1 2))
(start eceval)
(assert (get-register-contents eceval 'val) 3)
(assert (get-register-contents eceval 'val) 2)
(display "\nex-5.23 - derived-expressions\n")
(set-register-contents! eceval 'exp
'(cond
((= 1 2) 0)
((= 2 3) 1)
((= 0 4) 2)
(else 3)))
(start eceval)
(assert (get-register-contents eceval 'val) 3)
(display "\nex-5.24\n")
(set-register-contents! eceval 'exp
'(begin
(define (square x) (* x x))
(let ((y (square 3)))
y)))
(start eceval)
(assert (get-register-contents eceval 'val) 9)
;(display "\nex-5.25\n")
(display "\nex-5.24 \n")
(display "\nex-5.25\n")