2010-03-18から1日間の記事一覧

SICP問題4.15

Turingの停止問題(Halting Theorem)です。 任意の手続きp が オブジェクトa で停止するかどうか判定する (halts? p a) がある。 オブジェクト a で停止する場合は真, 停止しない場合は偽を返す場合、これを使用して以下の手続きが定義できる。 (define (run-…

SICP問題4.14

4.11 でやった各束縛が名前-値の対であるような束縛のリストで表現したフレームの定義のままだと、うまく評価器が動かなかったので、色々書き直しているうちに時間かかった。Eva Lu Ator の方法で実行した場合 (define (map f lst) (if (null? lst) '() (con…

SICP問題4.13

束縛を除去するunbind!式の定義。 unbind!の実装は最初のフレームからだけ結合を除去する仕様とした。 これはdefineが最初のフレームに束縛を追加するのと対応づけるためである。 (define (unbind? exp) (tagged-list? exp 'unbind!)) (define (eval-unbind!…

SICP問題4.12

set-variable-value!, define-variable!およびlookup-variable-valueから共通パターンを取り込んだ抽象の定義。 define-variable!と次の問題まで含めて考えて、手続きを渡せるようにしておく。 (define (scan var vars vals proc) (cond ((null? vars) #f) (…

今日の夕飯

ピザ(オーブントースターで焼くお惣菜) 鶏肉とレンコン炒め(昨日の残り) タコのガーリックバター炒め 白菜のクラムチャウダー煮 今日は全部妻作。