2 days ago

my attempt to do the exercises in sicp.

## Monday, July 7, 2008

### sicp exercise 2.6

; Exercise 2.6. In case representing pairs as procedures wasn't mind-boggling enough, consider

; that, in a language that can manipulate procedures, we can get by without numbers (at least

; insofar as nonnegative integers are concerned) by implementing 0 and the operation of adding 1 as

; (define zero (lambda (f) (lambda (x) x)))

; (define (add-1 n)

; (lambda (f) (lambda (x) (f ((n f) x)))))

; This representation is known as Church numerals, after its inventor, Alonzo Church, the logician who

; invented the calculus.

; Define one and two directly (not in terms of zero and add-1). (Hint: Use substitution to evaluate

; (add-1 zero)). Give a direct definition of the addition procedure + (not in terms of repeated

; application of add-1).

(begin

(define zero (lambda (f) (lambda (x) x)))

(define (add-1 n)

(lambda (f) (lambda (x) (f ((n f) x)))))

;answer

(define zero (lambda (f) (lambda(x) x)))

(define one (lambda (f) (lambda(x) (f x))))

(define two (lambda (f) (lambda(x) (f (f x)))))

)

Subscribe to:
Post Comments (Atom)

## No comments:

Post a Comment