問題5.13 – SICP(計算機プログラムの構造と解釈)その262
2009年10月10日
問題5.13
make-new-machine
の lookup-register
手続きで、引数 name
に該当するレジスタが見つからない場合に name
レジスタを作成するように変更する。
;;;; 修正前の make-new-machine (define (make-new-machine) ;; 省略 (define (lookup-register name) (let ((val (assoc name register-table))) (if val (cadr val) (error "Unknown register:" name)))) ; name がレジスタテーブルに登録されていない場合エラーとなる ;; 省略 dispatch))) ;;;; 修正後の make-new-machine (define (make-new-machine) ;; 省略 (define (lookup-register name) (let ((val (assoc name register-table))) (if val (cadr val) (begin ; name がレジスタテーブルに登録されていない場合、登録を行う。 (allocate-register name) (lookup-register name))))) ;; 省略 dispatch)))
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542