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

SICP 読み (194) 4.2.2 遅延評価の解釈系

3.5.4 節は完全スルーだったはずだよな、と思いつつ以前のエントリを検索。見てみると 135 から 137 の間でもの凄いスルー具合。戻って再度検討かな、とも思ったのですがスルーすることにしました。 最初は quote が微妙なの??とゆー勘違いをしてて以下の試…

SICP 読み (193) 4.2.2 遅延評価の解釈系

ヤバい。実機確認が面倒になりつつある。とりあえず 9.29 なエントリででっち上げたソレを確認してみる事に。たぶん一発ツモはないはず。

ちきしょう

直前エントリな問題 4.31 のメモ。バグっとる。あり得ないハマリ方だよ。 場所的には force-it 手続きッス。

今日も職場に居たりする。

基本的に待機なソレ、とゆー事で先日エントリした NortonGhost2003 によるバックアップなナニやらその他モロモロをメモ。

SICP 読み (192) 4.2.2 遅延評価の解釈系

なんと言えば良いのか、頭の上より背の高い藪がぶっツンでいる原野で無闇に草かりをしている気分です。進んでいる方向も出してる解も正しいかどうか分からず、がんがん進んでいるようなカンジ。 Chapter 4 に入ってから (ってそれ以前からですが) 出してる解…

SICP 読み (191) 4.2.2 遅延評価の解釈系

_a reformed C programmer_の意味的な部分を含め、最初は意図が全然分からんかったのですが、なんとなくこーゆー意味なのだろうか、という部分をメモ。

SICP 読み (190) 4.2.2 遅延評価の解釈系

ちょっとだけメモ。問題 4.30 です。何故かジュンスカがテレビで歌をうたっている。4.2.2 の解釈系が (p2 1) を評価して 1 を戻すのは内部定義されている p において e を eval した結果が (thunk (set! x (cons x '(2))) env) を戻すだけだ (中身は評価され…

微妙な一日

朝見た夢が悪かったのか。SICP の問題 4.30 がワケワカなのも含め、色んな場面でどハマリだったりします。どうもイケマセン。

SICP 読み (189) 4.2.2 遅延評価の解釈系

問題 4.30 は降参気味。仕方が無いのでわし的評価器に聞いてみた。 ;;; L-Eval input: (define (for-each proc items) (if (null? items) 'done (begin (proc (car items)) (for-each proc (cdr items))))) ;;; L-Eval value: ok ;;; L-Eval input: (for-eac…

今朝

通勤バスの中でアトムのお父さんが実はサリーちゃんのパパ、という夢を見た。意味不明。

独り言

ループ 8 回で済むはずなんだけどな。

SICP 読み (188) 4.2.2 遅延評価の解釈系

直前エントリな reverse は手動 eval が面倒なんで繰り返しなソレではなく、再帰版で検討してみる。 (define (reverse l) (if (null? (cdr l)) (list (car l)) (append (reverse (cdr l)) (list (car l)))))l がやたらに出てくる。これはこれで微妙。とりあ…

異音の原因

HDD ではなく、ファンから発生している模様。ぢつは昨日、某パソコンショップに持ち込んで確認頂いたんですが、「異音出てますね」でスルー。Linux しか起動しない時点でダウトだったらしい。それにしても HDD なのかファンなのかくらい切り分けして欲しかっ…

SICP 読み (187) 4.2.2 遅延評価の解釈系

問題 4.29 のつづき 試験なソレで確認してみるに、類推は正しかった模様。良かった。で、_Exhibit a program that you would expect to run much more slowly without memoization than with memoization._なソレですが、ちょっと前に時間をかけて検討してみ…

SICP 読み (186) 4.2.2 遅延評価の解釈系

SICP のソースが一式入ってるソレが故障中。早目に svn とかに置いときゃ良かった、というのはまさに後の祭り。 問題 4.29 最初は再帰かな、と思っていたんですが例示されてるソレによれば、引数を複数回評価するナニな模様。たとえば直前エントリな (define…

HDD から異音

電源入れっぱで朝寝してたら発生していたらしい。同居人によるとどっかでチェンソーか何かを使ってるのかと思ったらウチだった、ってすぐ側で寝てたわしも含め、早く気づけよ、と。よく考えたら 5 年落ちの thinkpad R31 です。結構でかい音。うるとら ATA …

SICP 読み (185) 4.2.2 遅延評価の解釈系

再帰、ってどうなんだろうか。例えば簡単な例で以下。 (define (f x) (if (= 0 x) 0 (+ x (f (- x 1))))) (f 5)

SICP 読み (184) 4.2.2 遅延評価の解釈系

5 章はボーナスステージらしい。楽しみなんですが先はまだまだ長い。ってか scheme なソレを開始したのが昨年末で一応は一年というシバリを、だったんですが果たして一年で終了するんだろうか、という心配はまだまだ早いか。 問題 4.28 演算子を actual-valu…

SICP 読み (183) 4.2.2 遅延評価の解釈系

昨晩のエントリですが、朝イチで試験にかけてみたら NG でした。どこかでボケをぶちカマしている模様。疲れているのと理解不足が原因ではないかと。 # って理解不足か。 (とほほ

SICP 読み (182) 4.2.2 遅延評価の解釈系

一応遅延評価なソレを盛り込んでみたんですが、まだきちんと理解できてないな。とりあえず問題 4.27 なナニを手動 eval する事で理解を深めたい。 そして保留な問題 4.26 は (以下略 問題 4.27 では順に見ていきます。実機確認は別途で。 (define count 0)ま…

SICP 読み (181) 4.2.1 正規順序と作用的順序

問題 4.25 これ、作用的順序なソレでは再帰ループだろ、と言いつつ guile で trace かけてみたら stack overflow なメセジが出た。 テキストによれば_純粋に正規的順序の言語では、すべての合成手続きは各引数につきノンストリクト_とあるので、unless の定…

いくつか

サバク 今日、二度ほどサバクに行った。 キャストなソレでパニくる。(java) cisco ルータの挙動でパニくる。 なんつーか疲労困憊。 gauche の code readin' ひげぽんさんが gauche のコードリーディングを始めたらしい。 Reading Gaucheチェックだけ入れさせ…

SICP 読み (180) 4.1.7 構文解析を実行から分離する

昨晩の続き。以下のリストが eval-sequence に渡されてどうなるか。 ((define f (lambda (i) (if ((lambda (x) (> x 100000)) i) '() (f (+ i 1))))) (f 0))まず最初に f を手続きに束縛。define-variable! で lambda 式は eval されて以下のリストになる。…

SICP 読み (179) 4.1.7 構文解析を実行から分離する

問題 4.24 とりあえず、以下の手続きをでっち上げて time なソレを測定。 (let f ((i 0)) (if ((lambda (x) (> x 100000)) i) '() (f (+ i 1))))で、わし製評価器に吸わせてみたらびっくり仰天。

SICP 読み (178) 4.1.7 構文解析を実行から分離する

今日三発目。今まで gaunit に頼ってて driver-loop 手続きを全然使ってませんでした。組み込んでもいない始末。time くらいしか思いつかないんですが、Binary Hacks あたりにソレな道具があったりするかも、と思いつつ以下の手続きを仕込む。 (define input…

SICP 読み (177) 4.1.7 構文解析を実行から分離する

問題 4.24 がボリューム大きスギ。その前にスルーしている問題 4.22 を検討。とりあえず、以前の問題でヒネリ出した書き換えな手続きが以下。 (define (let->combination exp) (if (symbol? (cadr exp)) (list 'begin (list 'define (cadr exp) (make-lambda…

SICP 読み (176) 4.1.7 構文解析を実行から分離する

4.1.7 節の analyze な手続きを盛り込みつつ動作確認中。ちょっとフライングして問題 4.23 ですがとても面白い。この面白さを何と表現すれば良いやら。

SICP 読み (175) 4.1.6 内部定義

直前エントリは大ボケをぶちカマしていた。正に ("example" (let ((l '(letrec ((fact (lambda (n) (if (= n 1) 1 (+ n (fact (- n 1))))))) (fact 10))) (r '(let ((fact '*unassigned*)) (set! fact (lambda (n) (if (= n 1) 1 (+ n (fact (- n 1)))))) (f…

SICP 読み (174) 4.1.6 内部定義

問題 4.20 は a のみ、とゆー事で。先に試験を一つだけ作成。 ("4.20" ("example" (let ((l '(letrec ((fact (lambda (n) (if (= n 1) 1 (+ n (fact (- n 1))))))) (fact 10))) (r '(let ((fact '*unassigned*)) (set! fact '(lambda (n) (if (= n 1) 1 (+ n…

SICP 読み (173) 4.1.6 内部定義

問題 4.21 の a の Fibonacci 数列なソレを以下に。手続きを渡せる、というのは凄いな。てか、これって自前の eval で評価するとどうなるのかな。 (define fibo (lambda (n) ((lambda (fib) (fib fib n)) (lambda (fb k) (cond ((= k 0) 0) ((= k 1) 1) (els…