Unlambda is a computer language in the style of INTERCAL, but in the functional vein instead of imperative. It's something of an assembly language for functional programming, an eager combinator calculus engine.

 

Twice I've been infected by the Unlambda bug.

The first was when Madore issued a challenge to write an Unlambda quine. This I did, becoming convinced in the process that Unlambda really, really should have been made lazy-evaluation instead of eager — the side-effect of infinite recursion means you can't use a lot of the beautiful constructs of Combinator Calculus.

It also convinced me that the existing Unlambda interpreters were woefully inefficient, which prompted me to write my own, which is as far as I know the only efficient interpreter out there. At this point I shook off the bug, and did more normal things for a year.

Then I stumbled back on Madore's Unlambda pages, where he stated that no-one had yet written an Unlambda interpreter in Unlambda, though it should be theoretically possible, and I was hooked again, until I finished my Unlambda-in-Unlambda, which compliments my Unlambda-in-C interpreter by instead being the least efficient Unlambda interpreter out there.

 


Home page