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

SICP 問題 2.27(部分枝も逆順にするdeep-reverse手続き)

【問題】 問題 2.18 の手続き reverse を修正し、引数としてリストをとり、要素を逆順にし、更に部分木も奥まで逆順にする手続き、deep-reverse を作れ。 例えば (define x (list (list 1 2) (list 3 4))) x ((1 2) (3 4) ) (revese x) ((3 4) (1 2) ) (deep…

SICP 問題 2.26(append/cons/listを、リストに適用した場合の違い)

【問題】 x と y をリストとして定義したとしよう。 (define x (list 1 2 3)) (define y (list 4 5 6)) 次の式のそれぞれの評価に応じて、解釈系が印字する結果は何か。 (append x y) (cons x y) (list x y) 【解答】 append はリストのトップレベルの要素を…

SICP 問題 2.25(リストから7を取り出すcar/cdrの組み合わせ)

【問題】 次のそれぞれのリストから、7を取り出す car と cdr の組み合わせを書け。 ① (1 3 (5 7) 9) ②((7)) ③ (1 (2 (3 (4 (5 (6 7)))))) 【解答】 普通に解いてみる。 ;①について (define lis1 '(1 3 (5 7) 9)) (car (cdr (car (cdr (cdr lis1))))) ;②に…