コンビネータについて教えてください。これは「フィックスポイント コンビネータ」と呼ばれ、次のプロパティがあります。
プロパティ: 「固定点コンビネータ」は関数を取り、その関数の「固定点」f :: (a -> a)
を発見します。修正点コンビネータの実装によっては、「発見」の点で良い場合も悪い場合もありますが、終了すると仮定すると、入力関数の固定点が生成されます。The Property を満たす関数は、「固定点コンビネーター」と呼ぶことができます。x :: a
f x == x
これを「固定点コンビネータ」と呼びy
ます。今言ったことに基づくと、次のことが当てはまります。
-- as we said, y's input is f :: a -> a, and its output is x :: a, therefore
y :: (a -> a) -> a
-- let x be the fixed point discovered by applying f to y
y f == x -- because y discovers x, a fixed point of f, per The Property
f x == x -- the behavior of a fixed point, per The Property
-- now, per substitution of "x" with "f x" in "y f == x"
y f == f x
-- again, per substitution of "x" with "y f" in the previous line
y f == f (y f)
では、どうぞ。固定点コンビネータの必須プロパティの観点から定義 しました: . が を発見すると仮定する代わりに、が発散計算を表していると仮定しても、同じ結論 (iinm) に達することができます。y
y f == f (y f)
y f
x
x
あなたの関数は The Property を満たすので、それは固定点コンビネータであり、型を含め、私たちが述べた他のプロパティはあなたの関数に適用可能であると結論付けることができます。
これは正確な証拠ではありませんが、追加の洞察が得られることを願っています。