ここまで読んだ。
眠い… Extended Exerciseは後で(気が向いたら)。
Exercise 2.6(チャーチ数)
;; Exercise 2.6 ;; Church Numeral (define zero (lambda (f) (lambda (x) x))) (define (add-1 n) (lambda (f) (lambda (x) (f ((n f) x))))) ; (add-1 zero) ; => (lambda (f) (lambda (x) (f (((lambda (f) (lambda (x) x)) f) x)))) ; => (lambda (f) (lambda (x) (f ((lambda (x) x) x)))) ; => (lambda (f) (lambda (x) (f x))) (define one (lambda (f) (lambda (x) (f x)))) ; (add-1 one) ; => (lambda (f) (lambda (x) (f (((lambda (f) (lambda (x) (f x))) f) x))))) ; => (lambda (f) (lambda (x) (f ((lambda (x) (f x) x))))) ; => (lambda (f) (lambda (x) (f (f x)))) (define two (lambda (f) (lambda (x) (f (f x))))) (define (add a b) (lambda (f) (lambda (x) ((a f) ((b f) x))))) (define (mul a b) (lambda (f) (a (b f)))) (define (to-num a) ((a (lambda (n) (+ 1 n))) 0))
keyword:λ計算に答えがあるっぽいので起きたら答え合わせ。