関数 expand の解釈が問われています!!
(define (expand num den radix) (cons-stream (quotient (* num radix) den) (expand (remainder (* num radix) den) den radix)))
最初からぶっちゃけると,これ割り算してるんですよね.筆算を思い浮かべるといいとおもう.radix はそのまま基数ってことで.
だから,
(define S (expand 1 7 10)) (dump-stream S 10) ; 1, 4, 2, 8, 5, 7, 1, 4, 2, 8, done
上の出力は 1/7 をしたときの商 (循環小数になる) ですし,下の出力は 3/8 をしたときの小数部ですね (これは割り切れてる).
(define S (expand 3 8 10)) (dump-stream S 10) ; 3, 7, 5, 0, 0, 0, 0, 0, 0, 0, done