; ex_2_6 (define zero (lambda (f) (lambda (x) x))) (define (add-1 n) (lambda (f) (lambda (x) (f ((n f) x))))) ; one ;(add-1 zero) ;(lambda (f) (lambda (x) (f ((zero f) x)))) ;;((zero f) x) ;;((lambda (x) x) x) ;;x ;(lambda (f) (lambda (x) (f x))) (define one (lambda (f) (lambda (x) (f x)))) ; two ;(add-1 one) ;(lambda (f) (lambda (x) (f ((one f) x)))) ;((one f) x) ;(((lambda (a) (lambda (b) (a b))) f) x) ;((lambda (b) (f b)) x) ;(f x) ;(lambda (f) (lambda (x) (f (f x)))) (define two (lambda (f) (lambda (x) (f (f x))))) ; three (define three (lambda (f) (lambda (x) (f (f (f x)))))) ; add ;(define (add a b) (lambda (f) (lambda (x) ("?")))) ;suppose a = 3, b = 3 ;("?") ;(fa (fa (fa (fb (fb (fb x)))))) ;(fa (fa (fa ((b f) x)))) ;((a f) ((b f) x)) (define (add a b) (lambda (f) (lambda (x) ((a f) ((b f) x)))))