2007-09-01から1ヶ月間の記事一覧

SICP 読み (172) 4.1.6 内部定義

今日も体調悪くて微妙なエントリ。がしかし、問題 4.21 凄い。ぼさっと本を眺めていてびっくりしてしまいました。a の設問は別途になりますが、b のソレを以下に。 (define (f x) ((lambda (even? odd?) (even? even? odd? x)) (lambda (ev? od? n) (if (= n…

SICP 読み (171) 4.1.6 内部定義

今日は体調優れず、一回休みと思ってたんですがちょっとだけ。ちなみに問題 4.18 は 3.5 節をスルーしてるんで別途。 問題 4.19 Ben 説はスコープという観点において成程見易いと感じます。 Alyssa 説もブロックなスコープという意味ではうなづける。 Eva 説…

SICP 読み (170) 4.1.6 内部定義

問題 4.16 に逆もどり。よく考えると根拠の無い推論ではなくて、実機で検証できる事に気がついた次第で。どこまでヤレるか分かりませんが再チャレンジとゆー事で。 と言いつつ以前のエントリを検索かけてみると、似たようなコトしてますが、気にせずリトライ…

SICP 読み (169) 4.1.6 内部定義

このエントリは晩メシ食わないでアルコールが入った状態で書いてますので、信頼性はナニ。(を ちょっとこのあたりの問題は微妙にミクロでストレスたまります。なつたんさんトコでスルーされてるのは正解じゃないかなと思ってしまいつつも、手が「スルー」と…

SICP 読み (168) 4.1.6 内部定義

早めに出勤してきたので以下を試してみた。 make-procedure で使っているのは lambda-body でこれはリストのリストになる procedure-body で取り出すのもリストのリスト という事は scan-out-defines で出力するソレも同様の形になっている必要あり。短気を…

SICP 読み (167) 4.1.6 内部定義

ええと、日曜日のエントリでも色々確認してるんですが、カブるのを恐れず再確認。もう少し色々確認する必要あり、ではないかと。 とりあえず机上トレースなソレとして以下の式をナニ。 (let ((env the-global-environment)) (eval '(define (f x) (define (e…

SICP 読み (166) 4.1.6 内部定義

色々検討してますが問題 4.16 の c についてはまだ分からん状態。とりあえず、scan-out-defines がでっち上がった。ほぼ一発だった。びっくり。

SICP 読み (165) 4.1.6 内部定義

問題 4.16 の前に まず、例示されている手続き (最後のみ手を入れとりますが) (define (f x) (define (even? n) (if (= n 0) true (odd? (- n 1)))) (define (odd? n) (if (= n 0) false (even? (- n 1)))) (even? x))がどのように評価されるか、を確認。上…

ひげぽんさんに紹介頂いたナニ

Kent Debvig 教授の本は参考書として持っていたり。 件の論文、ご紹介ありがとうございました。

SICP 読み (164) 4.1.5 プログラムとしてのデータ

今日、久々に散髪。今通っている店のご主人は渋谷で修行してたとの事。コミュニケーションの齟齬というか、わしの伝え方が微妙だからだと思うんですが、毎回出来上がりに満足してるワケではないんですが (自意識過剰??)、頭洗う時とか各種マッサージの具合が…

SICP 読み (163) 4.1.4 評価器をプログラムとして走らせる

問題 4.14 最初、primitive-procedures に map を仕込んで以下の試験をした所、試験にパス。何故に動くのだ、と言いつつ昨晩は意識を失なっております。 (assert-equal '(a d g) (map car (list (list 'a 'b 'c) (list 'd 'e 'f) (list 'g 'h 'i)))) (assert…

SICP 読み (162) 4.1.3 評価器のデータ構造

問題 4.13 方法としてどんなのがあるか、というと カレントな環境からのみ結合を除去 トップレベルまで探索を行ない、最初に発見した束縛のみを除去 トップレベルまで探索を行ない、ある限りの束縛を除去 なんですが、どうするべきなのかなぁ。

SICP 読み (161) 4.1.3 評価器のデータ構造

問題 4.12 昨晩の敗因は scan だの env-loop だのを流用しようという浅はかな考えだったのだろうか。環境を渡り歩く手続きをイチから考えた方が良いのかも。

ハマり中

SICP の問題 4.12 の検討中。どハマり。週末にかけて日中の稼働が上がるんで解の検討な時間の確保が微妙。 これはヒドい問題、なのかわしの頭が悪いのが問題、なのかは不明ッス。(とほほ 追記 scan は env-loop を、そして env-loop は scan を参照してるん…

SICP 読み (160) 4.1.3 評価器のデータ構造

現実トウヒの積み重ねだったりする。(何 問題 4.11 この問題の直前の時点では例えば setup-environment が以下だった場合 (define (setup-environment) (let ((initial-env (extend-environment '(x y) '(1 2) the-empty-environment))) initial-env))には (…

SICP 読み (159) 4.1.2 式の表現

4.10 をなんとなく動作確認。なんとなく動いた。試験はもう少しきちんと検討した方が良さげですが、稼働が上がってきたのでコマカい事に手を出さずにがんがん進めていかないと年内読了は不可能。

SICP 読み (158) 4.1.2 式の表現

前回エントリで出てきた以下の式 (apply (eval '(lambda (x) (+ x 1)) newenv) (list-of-values '(x) newenv))apply がどう評価するか、をはしょっているので自己フォロー。

SICP 読み (157) 4.1.2 式の表現

昨晩の続き。 (set! x ((lambda (x) (+ x 1)) x))の評価について。x は大域環境で 1 に束縛されているのが前提で。