2010-05-24から1日間の記事一覧

SICP 問題 2.47(フレームの選択子を定義する)

問題 フレームの構成子に候補が二つある: ;候補1 (define (make-frame origin edge1 edge2) (list origin edge1 edge2)) ;候補2 (define (make-frame origin edge1 edge2) (cons origin (cons edge1 edge2))) 構成子のそれぞれに、フレームの実装となる適…

SICP 問題 2.46(frameを構成するための各種手続きを定義する)

問題 原点からある点へ向かう二次元のベクタ v は x 座標と y 座標からなる対で表現できる。構成子 make-vect と、対応する選択子 xcor-vect と ycor-vect を作り、ベクタのデータ抽象を実装せよ。その選択子と構成子を使い、ベクタの加算、減算、スカラーに…

SICP 問題 2.45(right-split と up-split を、手続きを返す手続き split を使って具体化してみる)

問題 right-split と up-split は汎用分割演算の具体化として表すことができる。 (define right-split (split beside below)) (define up-split (split below beside)) の評価が既に定義したものと同じ振る舞いの手続き right-split と up-split を作り出す…

SICP 問題 2.44(up-splitを定義)

問題 corner-split で使った手続き up-split を定義せよ。below と beside の働き切り替える他は right-split と同様である。 解答 corner-split と right-split は直前に記載されているのでここに掲載しておこう。 (define (corner-split painter n) (if (=…