書く不動点コンビネータお好みの言語で、できるだけ少ない文字数では。
- 自由形式(つまり、最も短いもの):プログラム全体、実際の関数、コードスニペット
- 標準ライブラリがある場合は使用できません
- ただし、他の高水準関数から抽出することもできますが、ベースから構築するよりも、そうする方が得策です。
デモとして使用する再帰的な階乗またはフィボナッチを含めてください。
この質問では、自己参照は許容されます。目的は、それを適用する再帰関数からそれを削除することだけです。
要求された例の1つを使用してデモンストレーションできる実装はすべて問題ありません。
—
JB
私が誤解していない場合、厳密に言えば、「Yコンビネータ」という用語は、Haskell Curryによって発見された単一の固定小数点コンビネータλf。(λx.f(xx))(λx.f(xx))を具体的に指します。
—
Joey Adams
@Eelvex:明らかに、これまでの両方の回答(OP自身の回答を含む)は不正な方法を使用しているので、それで問題ないと思います。:-P個人的には、@ Joeyのアプローチを使用して、実際の(非自己参照)Yコンビネータのみが実行すると言います。;-)
—
Chris Jester-Young
@クリス:あらまあ。それは私が最初に考えていたもので、それから私は...途中で忘れていました。今変更するには遅すぎるので、別の質問を開かなければなりません。
—
JB
(define Y(lambda(f)(f(Y f))))
ますか?)