問題3.58 – SICP(計算機プログラムの構造と解釈)その152
2009年04月11日
問題3.58
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, 2, 8, 5, 7, 1, 4, 2, 8, done (/ 1.0 7.0) gosh> 0.14285714285714285
(expand 3 8 10)
(stream-head (expand 3 8 10) 10) gosh> 3, 7, 5, 0, 0, 0, 0, 0, 0, 0, done (/ 3.0 8.0) gosh> 0.375
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542