なかなか進まない
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)))
こんなペースで進めていたら終わるのはいつのことやら。