Unlambda is a minimal, "nearly pure"[1] functional programming language invented by David Madore.
It is based on combinatory logic, an expression system without the lambda operator or free variables.
It relies mainly on two built-in functions (s and k) and an apply operator (written `, the backquote character).
Unlambda is free and open-source software distributed under a GNU General Public License (GPL) 2.0 or later.
Here is an implementation of a hello world program in Unlambda:[1] The notation .x denotes a function which takes one argument and returns it unchanged, printing the single character x as a side effect when it is invoked.
i represents the version of the identity function that has no such side effect; it is used here as a dummy argument.
The program `.di applies the d-printing function to a dummy argument of i, returning i and printing the letter d as a side effect.
As a brief example, the identity function i can be implemented as ``skk, since ```skkx yields x for all x. Unlambda's one flow control construct is call with current continuation, denoted c. When an expression of the form `cx is evaluated, a special continuation object is constructed, representing the state of the interpreter at that moment.