Simple Kombinator Interpreter

Welcome to the combinatory logic interpreter.

Type an expression in the entry field and click ▶︎. A valid expression contains one or more terms and parenthesis around groups of terms. Unknown terms will be considered free variables and left as is.

New terms can be declared by prepending "name = " to the expression. They will appear in the box on the right and can be clicked to add them to the expression.

The interpreter supports lambda calculus and Church numerals. Lambda expressions are written as x->y->z-><expression>. Church numerals are written as non-negative integers.

The →SK button converts an expression into the SKI basis, term by term, and the →λ button attempts to find the shortest equivalent lambda term.

New! Use @atomic T=a->b->b a to declare new atomic combinators that reduce in one step. Other terms may be used in the definition, but the right-hand side must always start with abstraction (->). Self-referencing definitions supported, too. This is a highly experimental feature, please share your feedback in this issue.

Enter ? to get detailed info on syntax.

Term inventory: