Lambda the Ultimate

inactiveTopic Self-application as a fixpoint of call/cc
started 10/1/2003; 12:47:42 AM - last post 10/1/2003; 9:24:18 AM
Ehud Lamm - Self-application as a fixpoint of call/cc  blueArrow
10/1/2003; 12:47:42 AM (reads: 10234, responses: 2)
Self-application as a fixpoint of call/cc
The article basically shows that call/cc and Y are two sides of the same coin. The article however makes the claims formal and proves them as a theorem. The way of proving the theorem is interesting too: we extensively rely on syntax-rules macros. Indeed, one macro does a CPS transform, and another simple macro -- which is actually a lambda-calculator -- normalizes the result of the CPS transform.

The article shows in which way (call/cc call/cc) is equivalent to (lambda (x) (x x)). If you ever felt the (call/cc call/cc) itch, you'll want to check this out.

The article makes clever use of macros. Continuations, fixpoints, CPS, higher-order syntax, syntax-rule macros and lambda-calculators all take part in this Scheme tour de force.

Great fun...


Posted to theory by Ehud Lamm on 10/1/03; 12:50:17 AM

Neel Krishnaswami - Re: Self-application as a fixpoint of call/cc  blueArrow
10/1/2003; 9:18:42 AM (reads: 379, responses: 1)
I want to be Oleg when I grow up. :)

Daniel Yokomiso - Re: Self-application as a fixpoint of call/cc  blueArrow
10/1/2003; 9:24:18 AM (reads: 397, responses: 0)
I want to be Oleg when I grow up. :)
That is my exact feeling ;)

Also you know a language is truly powerful when you see Oleg doing something completely unexpected with it. He can write Haskell in Scheme, Scheme in C++ and C++ in Haskell.