@uents blog

Code wins arguments.

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

SICP 読書ノート#53 - 4.1.6 内部定義 (pp.230-234)

「§4.1.6 内部定義」を読みました。手続きの内部定義とその評価について考察します。 問題 4.19 変数を評価すると行っても色んなポリシーがあるという話。 自前の処理系 自前の処理系での実行結果は、(define b (+ a x))の評価の時点でローカル環境にaがない…

SICP 読書ノート#52 - 4.1.5 プログラムとしてのデータ (pp.228-230)

前回悩んでいたquoteのバグはparserが原因でした。 % git diff diff --git a/ch4-ruby-evaluator/parser.rb b/ch4-ruby-evaluator/parser.rb index f3a74f6..130c78d 100644 --- a/ch4-ruby-evaluator/parser.rb +++ b/ch4-ruby-evaluator/parser.rb @@ -14,…

SICP 読書ノート#51 - RubyでSchemeインタプリタをつくろう(10) - 導出された式 (pp.213-228)

derived expression(導出された式)や§4.1.1〜4.1.4の練習問題を解いていきます。 問題 4.1 関数適用の際の引数の評価は左から?右から?という問題。 自前の処理では以下のようにoperands.mapとしているので左から。右からとするならイテレーションの順序…

SICP 読書ノート#50 - RubyでSchemeインタプリタをつくろう(9) - 基本手続き/四則演算/リスト演算 (pp.213-228)

primitive procedure (基本手続き)を実装します。 例えば四則演算のように特殊形式では表現しにくいような基本的な演算を行います。 ソースコードはGitHubに置いています。 https://github.com/uents/sicp/tree/master/ch4-ruby-evaluator 四則演算 実装とし…