Main Page | See live article | Alphabetical index

Unlambda

Unlambda is a minimal functional programming language based upon the lambda calculus but not supporting the lambda operator. It relies mainly on two builtin functions (s and k) and an "Apply" operator (written `, the backquote character); these alone make it Turing-complete, but there are also some I/O functions to make it possible to interact with the user, some shortcut functions and a function for lazy evaluation.

As an esoteric programming language, Unlambda is meant as a demonstration of very pure functional programming rather than for practical use. Its main feature is the lack of conventional operators and data types -- the only kind of data in the program is one-parameter functions. Data can nonetheless be represented with curried functions. Unlambda is based around the principal of abstract elimination, or the elimination of all saved variables, including functions. As a purely-function language, Unlambda's functions are not only first-class objects, but they're the only first-class objects. Unlambda also has no side-effects whatsoever.

The hello, world program in Unlambda is somewhat odd. It is below:

`r```````````.H.e.l.l.o. .w.o.r.l.di

External link