Implement 5.23
This commit is contained in:
@@ -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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user