問題1.11 を半分写してみた

; 再帰プロセス版
(define (f n)
  (cond ((< n 3) n)
        (else (+ (f (- n 1))
                 (* 2 (f (- n 2)))
                 (* 3 (f (- n 3)))))))

;(f 10)

;反復版
;※全然わからない。。。orz
;http://www.serendip.ws/archives/354
(define (ff n)
  (if (< n 3)
      n
      (ff-iter 2 1 0 n)))

(define (ff-iter a b c n)
  (if (= n 2)
      a
      (ff-iter (+ a (* 2 b) (* 3 c)) a b (- n 1))))

(ff 10)