2

「カリー化は、オプションのパラメーターを持つための単なる派手な方法です」という Web 上の男の声明を読みました。直観的には、このステートメントは浅くて間違っていると感じますが、ラムダ計算に関する十分な知識がないためか、実際には指を置くことができません。

違いを説明しようとすると、私の説明は段落にまたがりますが、ほとんどの場合、「カリー化は、型としてパラメーターの数が少ない関数の宣言のすべてのバリエーションを持つことです。しかし、オプションのパラメーターを持つ関数のすべての組み合わせを有効な型として持つことはできません。少なくとも自動的にではなく、他の宣言でそれらを使用してください。」

私のアプローチは最初は正しいですか?さらに重要なことに、それを説明するためのより簡単でわかりやすい方法はありますか?

4

1 に答える 1

5

オプションであることとは何の関係もありません。

ただし、2つのパラメーターを受け取る関数を定義する代わりに、1つのパラメーターのみを受け取る関数を定義し、もう1つのパラメーターを受け取る関数を返すことができます。

最終結果は同じです(呼び出し元は2つのパラメーターを提供することになります)が、カリー化では、一度に1つしか提供しません。

于 2011-02-15T18:20:41.070 に答える