Суперкомбинатор

Суперкомбинатор — замкнутое математическое выражение, которое не содержит внутри себя свободных переменных. Это может быть либо константа, либо комбинатор, в котором все подвыражения являются суперкомбинаторами. С точки зрения математики λ-терм SS является суперкомбинатором арности nn, если в нём нет свободных переменных и он имеет вид λx1.λx2λxn.E\lambda x_1.\lambda x_2 \ldots \lambda x_n.E (при n0n \ge 0, поэтому сами по себе связывающие символы «λ» не нужны), где выражение EE не является λ-абстракцией и все λ-абстракции внутри EE являются суперкомбинаторами.

Другими словами суперкомбинатор $S\$ S может быть определён следующим образом: $Sλx1.λx2λxn.E,\$ S \equiv \lambda x_1.\lambda x_2 \ldots \lambda x_n.E, где EE не является λ-абстракцией и:

  1. Выражение SS не содержит связанных переменных.
  2. Все имеющиеся λ-абстракции в EE являются суперкомбинаторами.
  3. n0n \ge 0.

ЛитератураПравить

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