問題4.70 – SICP(計算機プログラムの構造と解釈)その242
2009年08月12日
問題4.70
cons-stream
により作られるストリームの cdr
は遅延評価されるため THE-ASSERTIONS
は初期値として与えられた assertion
の無限ストリームとなる。
let
により一時退避させることにより無限ストリーム化を防いでいる。
;; 元の評価機の add-assertion! 手続き (define (add-assertion! assertion) (store-assertion-in-index assertion) (let ((old-assertions THE-ASSERTIONS)) (set! THE-ASSERTIONS (cons-stream assertion old-assertions)) 'ok)) ;; let による束縛を行わない add-assertion! 手続き (define (add-assertion! assertion) (store-assertion-in-index assertion) (set! THE-ASSERTIONS (cons-stream assertion THE-ASSERTIONS)) 'ok)
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542