expand 手続きは割り算の手計算の手続きに似ている。 ;; stream の最初の n 個の要素を印字する手続き (define (stream-head s n) (define (iter s n) (if (<= n 0) 'done (begin (display (stream-car s)) (display ", ") (iter (stream-cdr s) (- n 1))))) (iter s n)) (define (expand num den radix) (cons-stream (quotient (* num radix) den) (expand (remainder (* num radix) den) den radix))) (expand 1 7 10) (stream-head (expand 1 7 10) 10) gosh> 1, 4,