関数としての二引数演算子

 

+-のような二引数演算子に限っては、fun x y -> x + yなどのかわりに(+)のように略すこともできます。

 

# f (+) ;;

- : int = 589

# f (-) ;;

- : int = 329

 

マニュアルで+-などが

 

val (+) : int -> int -> int

val (-) : int -> int -> int

 

のような形で載っているのは、これと同じ書き方を使っているわけです。

 

ただし特別な場合として、*に括弧をつけるときだけは前後に空白が必要です。 (*はコメントの始まりを、*)はコメントの終わりを表すためです。

 

# f ( * ) ;;

- : int = 1177848

 

このことを忘れると、よくわからないエラーが出てしまいます。

 

# f (*) ;;

Characters 2-5:

Warning: this is the start of a comment.

  f (*) ;;

    ^^^

* *) ;;

- : (int -> int -> int) -> int = <fun>

 

次へ進む