SICP ex 1.37

まずは、再帰的手続きで。

(define (cont-frac n d k)
  (define (iter i)
        (if (= i k)
                (/ (n i) (d i))
                (/ (n i) (+ (d i) (iter (+ i 1))))))
  (trace iter)
  (iter 1))

つぎに、反復的手続きで

(define (cont-frac n d k)
  (define (iter result i)
        (if (= i 0)
                result
                (iter (/ (n i) (+ (d i) result)) (- i 1))))
  (iter (/ (n k) (d k)) (- k 1)))