Код Ревью

Сравни свои решения

    (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.