なかなか進まない

SICPは問題を解きながら進めようとするとなかなか進みませんね。今日は特に問題1.37で止まってしまいました。自力で解くのは諦めて連分数の反復的プロセスを参考に解答。

accumulateを使って解けるらしくてそれが模範解答のような気がしますが、違う解き方をしてしまいました。

; 再帰的
;(define (cont-frac n d k)
;  (define (cont-frac- i)
;    (if (= i k) (/ (n i) (d i))
;        (/ (n i) (+ (d i) (cont-frac- (+ i 1))))))
;  (cont-frac- 1))

; 反復的
(define (cont-frac n d k)
  (define (cont-frac- i result)
    (if (= i 0) result
        (cont-frac- (- i 1) (/ (n i) (+ (d i) result)))))
  (cont-frac- k 0))

(cont-frac (lambda (i) 1.0) 
           (lambda (i) 1.0)
           10)

(/ 2 (+ 1 (sqrt 5)))

こんなペースで進めていたら終わるのはいつのことやら。