問題3.74 – SICP(計算機プログラムの構造と解釈)その164
2009年04月27日
問題3.74
ストリーム sense-data
を三角関数を使って仮に表現する。
(define sense-data (stream-map (lambda (x) (sin x)) integers)) (stream-head sense-data 10) gosh> 0.8414709848078965 0.9092974268256817 0.1411200080598672 -0.7568024953079282 -0.9589242746631385 -0.27941549819892586 0.6569865987187891 0.9893582466233818 0.4121184852417566 -0.5440211108893699 done
Alyssa の zero-crossings
手続き
(define (sign-change-detector s2 s1) (cond ((and (<= 0 s2) (> 0 s1)) 1) ;; 負->正 1 ((and (> 0 s2) (<= 0 s1)) -1) ;; 正->負 -1 (else 0))) (define (make-zero-crossings input-stream last-value) (cons-stream (sign-change-detector (stream-car input-stream) last-value) (make-zero-crossings (stream-cdr input-stream) (stream-car input-stream)))) (define zero-crossings (make-zero-crossings sense-data 0)) (stream-head zero-crossings 10) gosh> 0 0 0 -1 0 0 1 0 0 -1 done
stream-map
の一般化した版を使った場合。
(define zero-crossings (stream-map sign-change-detector sense-data (cons-stream 0 sense-data))) (stream-head zero-crossings 10) gosh> 0 0 0 -1 0 0 1 0 0 -1 done
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542