2017-10-21 21 views

答えて

1

主な利点は、部分機能アプリケーションをより便利にし、それによって機能構成を促進することです。

1つの欠点は、ラベル付けされた、オプションの、可変的な引数のような、他の言語機能とはうまく適合しないことです。確かにそれを動作させることは不可能ではありません。たとえば、OCamlはラベル付けされた引数とオプションの引数の両方を持っていますが、奇妙なものになります。関数が部分的に適用されているか、完全に適用されていて、オプションの引数を適用していないときは、どのように知っていますか? OCamlの解決策は、部分的なアプリケーションを想定することであり、すべてのオプション引数を指定せずに完全に適用できるようにするには、オプションの引数で関数を "終了"する必要があります。

言語が不潔で型の推論がある場合は、もう一つの欠点があります。部分的に有効な機能を部分的に適用し、タイプが間違っていることに気付かずに値を破棄し、副作用を起こさないようにすることが可能です。どのように言語を間違えるのかは、その型推論に依存しますが、OCamlなどの言語ではかなり初心者の間違いです。しかし、型アノテーションで少し訓練されることで回避することができます。

関連する問題