; here is a function that interleaves two streams and produces a new stream (define (s-interleave s1 s2) (if (s-null? s1) s2 (s-cons (s-first s1) (s-interleave s2 (s-rest s1))))) ; here we enumerate the integers by interleaving the positive and negative ones (define integers-bad (s-interleave naturals (s-map (lambda(x) (- x)) naturals))) ; when you display the first 12 terms of the stream you see it is not quite correct ; fix it (s-interval-to-list integers 0 11)