返回OCaml中函数的函数类型及其显示方式

时间:2015-04-21 01:11:15

标签: ocaml

我正在学习测试,其中一个练习题是写一个(int->int)->(int->int)类型的函数。提供的答案

fun x y -> (x 1) + y

但是当我提出像

这样的东西时
let funct x y = (x 1) + y;;

吐出(int-> int) - > int-> int。这与带有额外括号的版本有什么不同。如果是的话,如果没有,为什么不呢?

1 个答案:

答案 0 :(得分:4)

没有区别,->是正确关联的。 (1 - 2) - (3 - 4)1 - 2 - (3 - 4)相同的原因相同(减法是左关联的,效果是镜像的)。

这取决于OCaml中是否存在currying,即返回一个参数的函数的一个参数的函数与两个参数的函数无法区分 - 即f 1 2与{{1}相同}。