2008-04-01から1ヶ月間の記事一覧

Ex 2.19

(define (first-denomination coins) (car coins)) (define (except-first-denomination coins) (cdr coins)) (define (no-more? coins) (null? coins)) リスト内のコインの順序は cc の答えに影響しない。というのは、リストの先頭のコインから、それを使う…

Ex 2.18

(define (reverse xs) (if (null? xs) '() (append (reverse (cdr xs)) (list (car xs))))) なんか append を使うのは反則な気がしなくもない。

Ex 2.17

いきなり設問をがっと飛ばす。 (define (last-pair xxs) (let ((xs (cdr xxs))) (if (null? xs) xxs (last-pair xs)))) let を使わないほうが読みやすいだろうか?

Ex 2.6

こういうのは思考の順序をメモしておく価値がある、気がする。 (define zero (lambda (f) (lambda (x) x))) この定義によれば zero は一引数の手続きで、受け取った引数を無視して「値をそのまま返す手続き」を返す。でもって一加える次の手続き定義は... (d…

Ex 2.5

パス

Ex 2.4

証明...?置き換えを愚直に示せばいいんだろうか? (car (cons x y)) の cons について問題にある定義を適用すると、 (car (lambda (m) (m x y))) 続いて car の定義を適用する...と、 ((lambda (m) (m x y)) (lambda (p q) p)) 先の lambda 式の引数に値を…

Ex 2.3

ごめん。 回転とか考えると長方形ってなんか難しい気がするのでパス。

Ex 2.2

(define (make-segment s e) (cons s e)) (define (start-segment s) (car s)) (define (end-segment s) (cdr s)) (define (make-point x y) (cons x y)) (define (x-point p) (car p)) (define (y-point p) (cdr p)) (define (midpoint-segment s) (define …

Ex 2.1

(define (make-rat n d) (define (sign x) (if (< x 0) -1 1)) (let ((g (gcd n d))) (cons (* (sign (* n d)) (abs (/ n g))) (abs (/ d g))))) 汚いけど、ま、こんなもんでよろしかろうか。

計算機プログラムの構造と解釈

以前に挫折して、再挑戦中の SICP。 tumblr に書こうとしたら cocolog に三件書いたつもりが上書きしていて二件を台無しにしてしまい、 勢いではてなにアカウントを作ってみた。とりあえず答えたい問題にのみ答えていくという (自分に甘い) シンプルルールで…