開発環境
- OS X Lion - Apple(OS)
- Emacs、BBEdit - Bare Bones Software, Inc. (Text Editor)
- プログラミング言語: MIT/GNU Scheme
計算機プログラムの構造と解釈(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.72を解いてみる。
その他参考書籍
問題 3.72
コード(BBEdit)
sample.scm
(define (weight-sqares pair)
(+ (square (car pair))
(square (cadr pair))))
(define pairs-weighted-squares
(weighted-pairs integers integers weight-squares))
(define stream
(define (inner s w)
(let ((p1 (stream-car s))
(p2 (stream-car (stream-cdr s)))
(p3 (stream-car (stream-cdr (stream-cdr s)))))
(let ((w1 (weight-sqares p1))
(w2 (weight-sqares p2))
(w3 (weight-sqares p3)))
(cond ((= w1 w)
(inner (stream-cdr s) w))
((= w1 w2 w3)
(cons-stream w1
(inner (stream-cdr (stream-cdr (stream-cdr s)))
w1)))
(else
(inner (stream-cdr s 0)))))))
(inner pairs-weighted-squares 0))
0 コメント:
コメントを投稿