HOME

TheInfoList



OR:

A supercombinator is a
mathematical expression In mathematics, an expression is a written arrangement of symbols following the context-dependent, syntactic conventions of mathematical notation. Symbols can denote numbers, variables, operations, and functions. Other symbols include punct ...
which is fully bound and self-contained. It may be either a constant or a
combinator Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic. It was introduced by Moses Schönfinkel and Haskell Curry, and has more recently been used in computer science as a theoretical model of comp ...
where all the subexpressions are supercombinators. Supercombinators are used in the implementation of functional languages. In mathematical terms, a lambda expression ''S'' is a supercombinator of
arity In logic, mathematics, and computer science, arity () is the number of arguments or operands taken by a function, operation or relation. In mathematics, arity may also be called rank, but this word can have many other meanings. In logic and ...
''n'' if it has no free variables and is of the form λx1.λx2...λxn.''E'' (with ''n'' ≥ 0, so that lambdas are not required) such that ''E'' itself is not a lambda abstraction and any lambda abstraction in ''E'' is again a supercombinator.


See also

*
Lambda lifting Lambda lifting is a meta-process that restructures a computer program so that functions are defined independently of each other in a global scope. An individual ''lift'' transforms a local function (subroutine) into a global function. It is a tw ...


References

*S. L. Peyton Jones,
The Implementation of Functional Programming Languages
'. Prentice Hall, 1987. Functional programming Implementation of functional programming languages Lambda calculus {{comp-sci-theory-stub