2015/12/10

SICP 問題 3.60

(define (stream-head s n)
  (let iter ((s s)
             (n n))
    (if (zero? n)
        'done
        (begin
          (display (stream-car s))
          (display " ")
          (iter (stream-cdr s) (- n 1))))))


(define (mul-series s1 s2)
  (cons-stream (* (stream-car s1)
                  (stream-car s2))
               (add-streams
                (scale-stream (stream-cdr s2) (stream-car s1))
                (mul-series (stream-cdr s1) s2))))

(define circles (add-streams (mul-series sine-series sine-series)
                             (mul-series cosine-series cosine-series)))
gosh> (stream-head circles 10)
1 0 0 0 0 0 0 0 0 0 done

© 2022 wat-aro