Iota

Iota is a Turing tarpit designed by Chris Barker, based in combinatory logic. It uses only two symbols,  and , but not every combination of them is syntactically correct; e.g.   is correct but   is not, as opposed to its "sister language" Jot in which every string of symbols is valid.

An Iota program is either an, or a   followed by two Iota (sub-)programs.

Iota execution can be defined as repeating the following rewriting rules, which make use of the auxiliary subprograms  and , and where   represent subprograms:

*ix    --> **xsk **kxy  --> x ***sxyz --> **xz*yz

Alternatively it can be defined by translation to lambda calculus:

i = λx.xsk k = λxy.x s = λxyz.xz(yz)

where  and   are functions denotes the function. These can be "nested", such that (for example)  denotes.

Only the  function and the   operator can actually appear in a program's source code.

External resources

 * Iota and Jot: the simplest languages?