"let"で定義された緩い関数でオプションのパラメータを使用できないのはなぜですか?F#:なぜloose関数でオプションのパラメータを使用できないのですか?
メンバー関数でのみ許可されるのはなぜですか?
"let"で定義された緩い関数でオプションのパラメータを使用できないのはなぜですか?F#:なぜloose関数でオプションのパラメータを使用できないのですか?
メンバー関数でのみ許可されるのはなぜですか?
これらは、.NET機能との互換性のためにのみ提供されていると思われます。関数型言語で遭遇するものではありません。オプションのパラメータの問題は、カレー化できないことです。関数fの2番目のパラメータがオプションの場合、
g = f x
としますか?
1つの引数をとる関数か、xのfとデフォルトの第2のパラメータを評価して得られた値ですか?
OCamlでは許可されています。したがって、F#で実装することは可能です。
http://caml.inria.fr/pub/docs/manual-ocaml/lablexamples.html#sec43
私はそれがF#で簡単にするために省略されていると思います。