3 (define (make-zero-crossings input-stream last-value)
5 (sign-change-detector (stream-car input-stream) last-value)
6 (make-zero-crossings (stream-cdr input-stream)
7 (stream-car input-stream))))
9 (define (sign-change-detector current-value previous-value)
10 (cond [(and (positive? previous-value)
11 (positive? current-value)) 0]
12 [(and (positive? previous-value)
13 (negative? current-value)) -1]
14 [(and (negative? previous-value?)
15 (positive? current-value)) +1]
18 (define zero-crossings (make-zero-crossings sense-data 0))
20 ;; eva's implementation
21 (define zc (stream-map sign-change-detector sense-data (cons-stream 0 sense-data)))