Presentation is loading. Please wait.

Presentation is loading. Please wait.

Amazing fact #3: -calculus is Turing-complete!

Similar presentations


Presentation on theme: "Amazing fact #3: -calculus is Turing-complete!"— Presentation transcript:

1 Amazing fact #3: -calculus is Turing-complete!
But the -calculus is too weak, right? No multiple arguments! No numbers or arithmetic! No booleans or if! No data structures! No loops or recursion!

2 Multiple arguments: currying
Encode multiple arguments via curried functions, just as in regular ML (x1, x2). e  x1. (x2. e) ( x1 x2. e) f(e1, e2)  (f e1) e2

3 Church numerals Encode natural numbers using stylized lambda terms
zero  s. z. z one  s. z. s z two  s. z. s (s z) n  s. z. sn z A unary encoding using functions No stranger than binary encoding

4 Arithmetic on Church numerals
Successor function: take (the encoding of) a number, return (the encoding of) its successor I.e., add an s to the argument's encoding succ  n. s. z. s (n s z) succ zero  s. z. s (zero s z) * s. z. s z = one succ two  s. z. s (two s z) * s. z. s (s (s z)) = three

5 Addition To add x and y, apply succ to y x times
Key idea: x is a function that, given a function and a base, applies the function to the base x times "a number is as a number does" plus  x. y. x succ y plus two three * two succ three * succ (succ three) = five Multiplication is repeated addition, similarly


Download ppt "Amazing fact #3: -calculus is Turing-complete!"

Similar presentations


Ads by Google