(define (rc-circuit r c dt)
(lambda (i v0)
(add-stream
(scale-stream i r)
(integral
(scale-stream i (/ 1.0 c)) v0 dt))))
(define sense-data
(stream-map (lambda (x) (sin x)) integers))
(stream-ref-print sense-data 10)
(define (sign-change-detector input last-input)
(if (>= (* input last-input) 0) 0
(if (> last-input 0) -1 1)))
(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-ref-print zero-crossings 10)
(define zero-crossings
(stream-map sign-change-detector
sense-data
(cons-stream 0 sense-data)))