SICP 問題 3.75
バグを探す問題
(define (make-zero-crossings input-stream last-value) (let ((avpt (/ (+ (stream-car input-stream) last-value) 2))) (cons-stream (sign-change-detector avpt last-value) (make-zero-crossings (stream-cdr input-stream) avpt)))) ;; s1 s2 s3という順番でストリームが流れてくる時,この手続きでは ;; s1とs2の平均a1をとし,次のs3のところでa1とs3の平均a2とする. ;; ここではs2とs3の平均をとってa2として欲しいので引数を一つ増やす. (define (make-zero-crossings input-stream last-value last-avpt) (let* ((s1 (stream-car input-stream)) (avpt (/ (+ s1 last-value) 2))) (cons-stream (sign-change-detector avpt last-avpt) (make-zero-crossings (stream-cdr input-stream) s1 avpt))))