ストリームすげーよ

と、感動しつつ3章を進めているわけですが、
大きな壁にぶつかって悩み中。
なにやら、3−50のstream-mapの実装が正しく解けていないようで、無限ループに陥っているよう。
コードをいくら見ても、分からないので、google先生に聞いたりしたけど、
そもそも解いている人が少なかったりで、踏んだりけったり。
とりあえず、現状。


(define (stream-map proc . argstreams)
(if (stream-null? (car argstreams))
the-empty-stream
(cons-stream ;;;streamの作成
(apply proc (map car argstreams));;;各streamの先頭要素をとる,まだ評価しないからcar?
(apply stream-map
(cons proc (map cdr argstreams))))))