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