2013年8月19日月曜日

開発環境

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

その他参考書籍

問題 3.75

コード(BBEdit)

sample.scm

(define (make-zero-crossings input-stream last-value last-avpt)
  (let ((value (stream-car input-stream)))
    (let ((avpt (/ (+ value last-value) 2)))
      (cons-stream (sign-change-detector avpt last-avpt)
                   (make-zero-crossings (stream-cdr input-stream)
                                        value
                                        avpt)))))  

問題 3.76

コード(BBEdit)

sample.scm

(define (smooth stream)
  (let ((a (stream-car stream))
        (b (stream-car (stream-cdr stream))))
    (let ((avpt (/ (+ a b) 2)))
      (cons-stream avpt
                   (smooth (stream-cdr stream))))))

(define zero-crossings
  (stream-map sign-change-detector
              (smooth sense-data)
              (smooth cons-stream 0
                                  sense-data)))

0 コメント:

コメントを投稿