Skip to content

不動点コンビネータ

Tuber には 2 種類の不動点コンビネータが定義されています。

Y

Y はハスケル・カリーによって発見された不動点コンビネータと同等のものです。
下記のように定義されています。

Y(f) = (x => f(x(x)))(x => f(x(x)))

Z

Z は正格評価でも使用可能なバージョンの不動点コンビネータです。
(とはいえ Tuber は遅延評価戦略ですが)

Z(f) = (x => f(y => x(x, y)))(x => f(y => x(x, y)))