SICP問題3.62

二つのべき級数を割る手続きdiv-seriesを定義せよ。
分母が零の定数項を持つならdiv-seriesはエラーを出すこと。
div-seriesを3.59の結果とともに使い、正接のべき級数を生成する方法を述べよ。
という問題でdiv-seriesは

(define (div-series s1 s2)
  (mul-series s1
              (invert-unit-series s2)))

で良いkかと思ったけど、ゼロ割のエラーとか入らないし、これじゃダメっぽい。
ということでベキ級数の商についてググってみて引っかかった

\sum_{n=1}^\infty|\frac{b_{n}}{b_{0}}||x|^n<1
すなわち
\sum_{n=1}^\infty|b_{n}||x|^n<|b_{0}|
であるときに
\frac{1}{g(x)}=\frac{1}{b_0}\left{1-(\frac{b_{1}}{b_{0}}x+\cdots)+(\frac{b_{1}}{b_{0}}x+\cdots)^2-\cdots\right}
を利用して展開されることになる。これにf(x)をかければf(x)/g(x)のベキ級数が得られる。

3.4 積、商、合成関数

辺りを参考にして考えてみると

(define (div-series s1 s2)
  (if (= (stream-car s2) 0)
      (error "-- DIV-SERIES divide zero")
      (mul-series s1
                  (scale-stream (invert-unit-series s2)
                                (/ 1 (stream-car s2))))))

という感じかなぁ。
正接のベキ級数ということだが、これは
\tan \theta = \sin \theta / \cos \theta
なので

(define tangent-series
  (div-series sine-series cosine-series))

で良いはず。
テスト

(stream-ref tangent-series 0)
; 0
(stream-ref tangent-series 1)
; 1
(stream-ref tangent-series 2)
; 0
(stream-ref tangent-series 3)
; 1/3
(stream-ref tangent-series 4)
; 0
(stream-ref tangent-series 5)
; 2/15

OKなのか?さっぱり分からない。