問題タブ [y-combinator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Y-Combinator の実装を理解する
Y-combinator のラムダ計算式からどのように取得したかを詳細に理解したいと思います:
次の実装に (Scala で) :
私は関数型プログラミングにはかなり慣れていませんが、ラムダ計算と置換プロセスがどのように機能するかについては十分に理解しています。ただし、形式的な式から実装に至るまでの経緯を理解するのに苦労しています。
その上、関数の引数の型と数、およびラムダの戻り値の型を伝える方法を知りたいですか?
lambda - 遅延評価を使用して、スキームのYコンビネータ?
特に遅延評価と追加の引数を使用して、SchemeでYコンビネーターを実装する方法を知っている人はいますか? 私の理解では、Scheme (promise?) (delay) と (force) は遅延評価のサポートを提供します。
アプリケーションを使用した Y コンビネータは次のように理解していますが、デフォルトでは適用可能な順序評価のため、Scheme では機能しません。
これは推奨される解決策 (Z コンビネーター) ですが、解決策として引数を持つ別のラムダ関数を使用します。
ソリューションに基づく更新
Y コンビネータは次のとおりです。
ご指導よろしくお願いします!