SICP 問題1.41
(define (inc n) (+ 1 n)) (define (double f) (lambda (x) (f (f x))))
(define D double) (define DD (D D)) (((D (D D)) inc) 5) (((D DD) inc) 5) ((DD (DD inc)) 5) ((DD (D (D inc)))) ((D (D (D (D inc)))) 5) ((D (D (D (lambda (x) (+ 2 x))))) 5) ((D (D (lambda (x) (+ 4 x)))) 5) ((D (lambda (x) (+ 8 x))) 5) ((lambda (x) (+ 16 x)) 5) (+ 16 5) 21 gosh> (((double (double double)) inc) 5) 21