(load "util.scm") (load "misc/sicp-regsim.scm") (load "misc/sicp-eceval.scm") (define the-global-environment (setup-environment)) (set-register-contents! eceval 'exp '(if false 1 2)) (start eceval) (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) (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.24 \n") (display "\nex-5.25\n")