問題3.77 – SICP(計算機プログラムの構造と解釈)その167
2009年04月30日
問題3.77
被積分値を先に評価する force
の部分はすぐにわかったのだけれど、 integral
の再帰部分の第1引数を delay
しなければいけないところがわからなかった。
solve
手続きは、本文に記載されているものは Gauche では動作しないので修正が必要となった。
参考 : SICP Exercise 3.77. – 理工系学生の演習日記
(define (integral delayed-integrand initial-value dt) (cons-stream initial-value (let ((integrand (force delayed-integrand))) (if (stream-null? integrand) the-empty-stream (integral (delay (stream-cdr integrand)) (+ (* dt (stream-car integrand)) initial-value) dt))))) ;; gauche で動作するように修正した solve 手続き (define (solve f y0 dt) (define dy (stream-map f y)) (define y (integral (delay dy) y0 dt)) y) (stream-ref (solve (lambda (y) y) 1 0.001) 1000) gosh> 2.716923932235896
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542