You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sicp-all-tasks/sicp/2_002e6

21 lines
739 B

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).