Supercombinator

From Wikipedia, the free encyclopedia

A supercombinator is a mathematical expression which is fully-bound and self-contained. It may either be a constant or a combinator where all the subexpressions are supercombinators.

It may be defined, in mathematical terms, as the following:

A supercombinator, $S of arity n is a lambda expression of the form
λx1.λx2...λxn.E
where E is not a lambda abstraction, such that:
i) $S has no free variables.
ii) any lambda abstraction in E is a supercombinator.
iii) n >= 0, so that lambdas are not required.

[edit] References

  • S. L. Peyton Jones, The Implementation of Functional Programming Languages. Prentice Hall, 1987.