忘记函数参数周围的括号

一个常见的错误是忘记带括号的周围复合函数参数,从而导致类型错误。

# string_of_int 1+1;;

Error: This expression has type string but an expression was expected of type int

这是因为优先权。事实上,以上评估为

# (string_of_int 1) + 1;;

这是错的。一个正确的语法

# string_of_int (1+1);;

- : string = "2"