int -> int -> int
プラス(+)のタイプが対照的であると見なされるのはなぜ(int * int) -> int
ですか?int
私にとって、2番目は2タプル(加数)を「受け入れ」、シングル(それらの合計)を返すため、理にかなっています。
ありがとうございました!
int -> int -> int
プラス(+)のタイプが対照的であると見なされるのはなぜ(int * int) -> int
ですか?int
私にとって、2番目は2タプル(加数)を「受け入れ」、シングル(それらの合計)を返すため、理にかなっています。
ありがとうございました!
(+)
タイプがの言語を作成できます(int * int) -> int
。実際、SMLはまさにこのように機能します。中置演算子の意味に影響を与えるだけです。a -> b -> c
ただし、OCamlの規則では、カレーなしの関数ではなく、カレー付きの関数(タイプ)の使用を強く推奨しています。良い結果の1つは、それらを部分的に適用できることです。たとえば、((+)7)はタイプの意味のある式ですint -> int
。この表記は非常に頻繁に役立ちます。
これは少し役に立たないように思えるかもしれませんが、関数が2つの引数を取るためです。
関数がタプルをとるとき、それは事実上単一の引数をとっています。
はインライン関数であるため、単一の引数を取ることは、とは対照的に(+)
見えるため、役に立ちません。+ (1,2)
1 + 2