In pure lambda calculus there aren't any numbers. There's this 3 things and that's it: variables, function definitions and function application

That's all you've got.

No objects, no numbers, no if statements, no true or false.

So... how can you build anything with lambda calculus?

Express it as functions:

0 := λ f x. x

1 := λ f x. f x

2 := λ f x. f (f x)

3 := λ f x. f (f (f x))

PLUS := λ m n f x. n f (m f x)

MULT := λ m n f. n (n f)

TRUE := λ x y. x

FALSE := λ x y. y

AND := λ p q. p q p

OR := λ p q. p q p

NOT := λ p a b. p b a

IFTHENELSE := λ p a b. p a b

PAIR := λ x y f. f x y

FIRST := λ p. p TRUE

SECOND := λ p. p FALSE

NIL := λ x. TRUE

NOTNIL := λ p. p (λx y. FALSE)

Taken from André Peng's talk on Foundations Of Objective-C

Transcript of the slides is available here.

## No comments:

## Post a Comment