Blame


1 665c255d 2023-08-04 jrmu (define (f n)
2 665c255d 2023-08-04 jrmu (if (< n 3)
3 665c255d 2023-08-04 jrmu n
4 665c255d 2023-08-04 jrmu (+ (f (- n 1))
5 665c255d 2023-08-04 jrmu (* 2 (f (- n 2)))
6 665c255d 2023-08-04 jrmu (* 3 (f (- n 3))))))
7 665c255d 2023-08-04 jrmu
8 665c255d 2023-08-04 jrmu (load-option 'format)
9 665c255d 2023-08-04 jrmu ;; (load-option 'unquote)
10 665c255d 2023-08-04 jrmu ;; (define (test-case t1 t2)
11 665c255d 2023-08-04 jrmu ;; (format #t "~A: ~A Expected: ~A" `t1, t1, t2))
12 665c255d 2023-08-04 jrmu (define (test-case actual expected)
13 665c255d 2023-08-04 jrmu (format #t "Actual: ~A Expected: ~A" actual expected))
14 665c255d 2023-08-04 jrmu (test-case (f 0) 0)
15 665c255d 2023-08-04 jrmu (test-case (f 1) 1)
16 665c255d 2023-08-04 jrmu (test-case (f 2) 2)
17 665c255d 2023-08-04 jrmu (test-case (f 3) 4)
18 665c255d 2023-08-04 jrmu (test-case (f 4) 11)
19 665c255d 2023-08-04 jrmu
20 665c255d 2023-08-04 jrmu (define (f2 n)
21 665c255d 2023-08-04 jrmu (f-iter 2 1 0 n))
22 665c255d 2023-08-04 jrmu
23 665c255d 2023-08-04 jrmu (define (f-iter n1 n2 n3 i)
24 665c255d 2023-08-04 jrmu (if (= i 0)
25 665c255d 2023-08-04 jrmu n3
26 665c255d 2023-08-04 jrmu (f-iter (+ n1 (* 2 n2) (* 3 n3))
27 665c255d 2023-08-04 jrmu n1
28 665c255d 2023-08-04 jrmu n2
29 665c255d 2023-08-04 jrmu (- i 1))))
30 665c255d 2023-08-04 jrmu
31 665c255d 2023-08-04 jrmu
32 665c255d 2023-08-04 jrmu (test-case (f2 0) 0)
33 665c255d 2023-08-04 jrmu (test-case (f2 1) 1)
34 665c255d 2023-08-04 jrmu (test-case (f2 2) 2)
35 665c255d 2023-08-04 jrmu (test-case (f2 3) 4)
36 665c255d 2023-08-04 jrmu (test-case (f2 4) 11)