Blob
1 (define (f n)2 (if (< n 3)3 n4 (+ (f (- n 1))5 (* 2 (f (- n 2)))6 (* 3 (f (- n 3))))))8 (load-option 'format)9 ;; (load-option 'unquote)10 ;; (define (test-case t1 t2)11 ;; (format #t "~A: ~A Expected: ~A" `t1, t1, t2))12 (define (test-case actual expected)13 (format #t "Actual: ~A Expected: ~A" actual expected))14 (test-case (f 0) 0)15 (test-case (f 1) 1)16 (test-case (f 2) 2)17 (test-case (f 3) 4)18 (test-case (f 4) 11)20 (define (f2 n)21 (f-iter 2 1 0 n))23 (define (f-iter n1 n2 n3 i)24 (if (= i 0)25 n326 (f-iter (+ n1 (* 2 n2) (* 3 n3))27 n128 n229 (- i 1))))32 (test-case (f2 0) 0)33 (test-case (f2 1) 1)34 (test-case (f2 2) 2)35 (test-case (f2 3) 4)36 (test-case (f2 4) 11)