1 665c255d 2023-08-04 jrmu (define (f 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))))))
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)
20 665c255d 2023-08-04 jrmu (define (f2 n)
21 665c255d 2023-08-04 jrmu (f-iter 2 1 0 n))
23 665c255d 2023-08-04 jrmu (define (f-iter n1 n2 n3 i)
26 665c255d 2023-08-04 jrmu (f-iter (+ n1 (* 2 n2) (* 3 n3))
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)