SICP問題3.58

expand 手続き(教科書で定義)
※quotientは二つの整数の整数の商を返す基本手続き

(define (expand num den radix)
  (cons-stream
   (quotient (* num radix) den)
   (expand (remainder (* num radix) den) den radix)))

expand 手続きが生じる要素は

(expand 1 7 10)
; 1 (expand 3 7 10)
; 1 4 (expand 2 7 10)
; 1 4 2 (expand 6 7 10)
; 1 4 2 8 (expand 4 7 10)
; 1 4 2 8 5 (expand 5 7 10)
; 1 4 2 8 5 7 (expand 1 7 10)
(expand 3 8 10)
; 3 (expand 6 8 10)
; 3 7 (expand 4 8 10)
; 3 7 5 (expand 0 8 10)
; 3 7 5 0 (expand 0 8 10)

となる。これらは、それぞれ以下のように割り算の結果と同様である。

(/ 1.0 7)
; 0.14285714285714285
(/ 3.0 8)
; 0.375