Code Review
Compare your solutions
(define (make-sine-series)
(define (iter n denom)
(define denom1 (* denom (+ n 1) (+ n 2)))
(define denom-next (* denom1 (+ n 3) (+ n 4)))
(cons-stream 0
(cons-stream (/ 1 denom)
(cons-stream 0
(cons-stream (/ -1 denom1)
(iter (+ n 4) denom-next))))))
(iter 1 1))
(define sine-series (make-sine-series))
(define (make-cosine-series)
(define (iter n denom)
(define denom1 (* denom (+ n 1) (+ n 2)))
(define denom-next (* denom1 (+ n 3) (+ n 4)))
(cons-stream 0
(cons-stream (/ -1 denom)
(cons-stream 0
(cons-stream (/ 1 denom1)
(iter (+ n 4) denom-next))))))
(cons-stream 1 (iter 2 2)))
(define cosine-series (make-cosine-series))
(define (mul-series stream1 stream2)
(define first1 (stream-car stream1))
(define first2 (stream-car stream2))
(cons-stream (* first1 first2)
(add-streams (scale-stream (stream-cdr stream2) first1)
(mul-series stream2 (stream-cdr stream1))))) ;It seems to me that the alternation of order here may be important for convergence on infinite streams.