Jump to content

Supercombinator

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by OldakQuill (talk | contribs) at 00:13, 8 February 2005 (Start). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

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, that is there need be no lambdas at all.

References

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