5

勉強中です。これは私が奇妙だと思ったものです:

let test_treeways x = match x with
  | _ when x < 0 -> -1
  | _ when x > 0 -> 1
  | _ -> 0;;

次に、次のように呼び出す場合:

test_threeways -10;;

型の不一致エラーが発生します(私が理解している限り、単項マイナスを部分関数適用であるかのように解釈するため、式の型は と見なされますint -> int。ただし、これは:

test_threeways (-10);;

期待どおりに動作します(これは実際に値を計算しますが、理解できるように、定数「マイナス10」を関数に渡しません.

では、OCaml で定数の負の数をどのように記述しますか?

4

2 に答える 2

2

~-と ~-を使用できます。直接(他の回答で示唆されているように)、それらは両方とも明示的な前置演算子であるため、それらの解析はあいまいではありません。ただし、括弧を使用することを好みます。

于 2013-04-19T15:42:41.830 に答える