@uents blog

Code wins arguments.

2015-06-01から1ヶ月間の記事一覧

SICP 読書ノート#58 - 4.3 非決定性計算 - 継続とは何か (pp.245)

「§4.3 Schemeの変形---非決定性計算」に入りました。 最初はテキストの内容の全貌が掴めず、サンプルコードをロードしてambを叩きまくっていたのですが、だんだん何がわからないかが頭の中で整理できてきました。 →ambの振る舞いがどういうことなのかわから…

SICP 読書ノート#57 - 4.2.3 遅延評価リストとしてのストリーム (pp.243-245)

遅延評価器では手続きの引数が全て遅延されるので、consセルをcompound procedureとして定義すれば、リストとストリームは同義となる。 consの手続きは§2でも出たあれだ。 (define (cons first rest) (lambda (pair) (pair first rest))) (define (car pair)…

SICP 読書ノート#56 - 4.2.2 遅延評価の解釈系 (pp.238-243)

前節の正規順序による評価を実現するために、Scheme評価器に遅延評価を組み込みます。 ソースコードはGitHubに置いています。 https://github.com/uents/sicp/tree/master/ch4.2-lazy-evaluator thunkとは? thunk(サンク)とは遅延評価オブジェクトそのもの…

SICP 読書ノート#55 - 4.2.1 正規順序と作用的順序 (pp.237-238)

「§4.2 Schemeの変形---遅延評価」から。 §4.1の超循環評価器に遅延評価を組み込んでいきます。 正規順序と作用的順序 よくごっちゃになるので整理。 作用的順序 (applicative order) 手続きを作用させるときに、引数をすべて評価する この手続きは引数に対…

SICP 読書ノート#54 - 4.1.7 構文解析から実行を分離する (pp.234-237)

久しぶりの更新です。 恐ろしいことにSICPを読み始めて1年が経ってしまいました。ここの進みの遅さ。激しく自省。。 特にサボっていたわけではなく、§4.3の非決定性計算を読んでいるうちに継続と戯れていたらこっちの更新が滞ってしまってました。継続の概…