2013年8月20日火曜日

開発環境

計算機プログラムの構造と解釈(Gerald Jay Sussman(原著)、Julie Sussman(原著)、Harold Abelson(原著)、和田 英一(翻訳)、ピアソンエデュケーション、原書: Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)(SICP))の3(標準部品化力, オブジェクトおよび状態)、3.5(ストリーム)、3.54(ストリームと遅延評価)、問題 3.77、問題 3.78、問題 3.79を解いてみる。

その他参考書籍

問題 3.77

コード(BBEdit)

sample.scm

(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)))))

問題 3.78

コード(BBEdit)

sample.scm

(define (solve-2nd a b dt y0 dy0)
  (define y (integral (delay dy) y0 dt))
  (define dy (integral (delay ddy) dy0 dt))
  (define ddy (add-streams (stream-scale dy a)
                           (stream-scale y b)))
  y)  

問題 3.79

コード(BBEdit)

sample.scm

(define (solve-2nd f y0 dy0 dt)
  (define y (integral (delay dy) y0 dt))
  (define dy (integral (delay ddy) dy0 dt))
  (define ddy (stream-map f dy y))
  y)

0 コメント:

コメントを投稿