exercise-12.scm (1387B)
1 (define-library (sicp tests chapter-4 exercise-12) 2 (import (scheme base) 3 4 (srfi :64) 5 6 (sicp solutions chapter-4 exercise-12) 7 8 (sicp utils)) 9 10 (begin 11 (debug! #t) 12 13 ;; TODO: Not sure if this is the real solution. 14 15 (test-begin "chapter-4-exercise-12") 16 17 (test-equal 1 18 (eval '1 19 (setup-environment))) 20 21 (test-equal 1 22 (eval '(begin 23 (define a 1) 24 1) 25 (setup-environment))) 26 27 (test-equal 1 28 (eval '(begin 29 (define a 1) 30 (let ((b 1)) 31 b)) 32 (setup-environment))) 33 34 (test-equal 1 35 (eval '(begin 36 (define a 1) 37 (let* ((b 1)) 38 b)) 39 (setup-environment))) 40 41 (test-equal 2 42 (eval '(begin 43 (define a 1) 44 (+ a 1)) 45 (setup-environment))) 46 47 (test-equal 3 48 (eval '(begin 49 (define a 1) 50 (let ((b (+ a 1))) 51 (+ a b))) 52 (setup-environment))) 53 54 (test-equal 5 55 (eval '(begin 56 (define a 1) ;; a = 1 57 (let ((b (+ a 1))) ;; b = 1 + 1 = 2 58 (set! b (+ b b)) ;; b = b + b = 2 + 2 = 4 59 (+ a b))) ;; a = a + b = 1 + 4 = 5 60 (setup-environment))) 61 62 (test-end "chapter-4-exercise-12") 63 ))