2010-07-01から1ヶ月間の記事一覧

SICP 問題 2.57(同一演算の項(2項以上)をまとめて記述する書式に変更した場合の構成子、選択子について)

なんかものすごく時間がかかってしまった。。 気が乗らなかったなぁこの問題。だって面倒くさそうだったんだもん。。 問題 微分プログラムを拡張し、(2かそれを超える)任意個の項の和と積が扱えるようにせよ。上の最後の例は (deriv '(* x y (+ x 3)) 'x)…

SICP 問題 2.56(x^n形式の微分方法を追加)

問題 更に多くの形の式が扱えるように微分プログラムを拡張する方法を示せ。deriv に新しい節を追加し、例えば d(u^n) du ─── = n・u^(n-1)・(──) dx dxの微分規則を、適切な手続 exponentiation?, base, exponent, 及び make-exponentiation を定義して実装…

SICP §2.3.2(記号微分 その2 [代数式の表現])

前エントリで羅列した、微分を行う為の各種手続きを定義していく。 (define (variable? x) (symbol? x)) (define (same-variable? v1 v2) (and (variable? v1) (variable? v2) (eq? v1 v2))) (define (sum? x) (and (pair? x) (eq? (car x) '+))) (define (a…

SICP §2.3.2(記号微分 その1 [抽象データによる微分プログラム])

数式を受け取り、その微分形式を求めるというお題を使っているセクション。 改めて、和や積を使って表現される数式に対する微分規則はこんな感じ。 dc ─ = 0 (cは定数か、xと異なる変数) dxdx ─ = 1 dxd(u + v) du dv ──── = ─ + ─ dx dx dxd(uv) dv du ─── …

SICP 問題 2.55(クオートの性質?)

問題 Eva Lu Ator は解釈系に対して式 (car ''abracadabra) と入力した。驚いたことに解釈系は quote 印字してきた。なぜか。 解答 ''abracadabra が評価されると、(quote abracadabra) つーリストになる。その car を抽出してるから quote が返るって解釈で…

SICP 問題 2.54(リストの比較?)

問題 二つのリストは、同じ順に並んだ同じ要素を含むとき、equal? であるという。例えば、 (equal? '(this is a list) '(this is a list)) は真である。しかし、 (equal? '(this is a list) '(this (is a) list)) は偽である。より正確には、基本となる eq? …

SICP 問題 2.53(クオートの動作確認)

問題 次の各式を評価した結果、解釈系は何を印字するか。 (list 'a 'b 'c)(list (list 'george))(cdr '((x1 x2) (y1 y2)))(cadr '((x1 x2) (y1 y2)))(pair? (car '(a short list)))(memq 'red '((red shoes) (blue socks)))(memq 'red '(red shoes blue sock…

SICP 問題 2.52(ペインタの総括っぽい感じ)

問題 図2.9に示した wave の square-limit を、上に示した各レベルで作業して変更せよ。特に、 a. 問題 2.49 の基本的 wave ペインタに(例えば笑っているような)線分を加えよ。 b. corner-split で構成されるパターンを(例えば2つでなく、up-split と ri…

SICP 問題 2.51(ペインタの合成)

ご無沙汰しちゃった。。仕事でヘマしてダウナーになっちまったのと、そのあと元気になったけど、休みの日にモデルハウスにひやかしにいったら家を建てたくなっちゃって間取りとか考えすぎちゃって、SICPから離れてしまった。。 一ヶ月ぶりに復帰だ! 問題 ペ…