我正在学习测试,其中一个练习题是写一个(int->int)->(int->int)
类型的函数。提供的答案
fun x y -> (x 1) + y
但是当我提出像
这样的东西时let funct x y = (x 1) + y;;
吐出(int-> int) - > int-> int。这与带有额外括号的版本有什么不同。如果是的话,如果没有,为什么不呢?
答案 0 :(得分:4)
没有区别,->
是正确关联的。 (1 - 2) - (3 - 4)
与1 - 2 - (3 - 4)
相同的原因相同(减法是左关联的,效果是镜像的)。
这取决于OCaml中是否存在currying,即返回一个参数的函数的一个参数的函数与两个参数的函数无法区分 - 即f 1 2
与{{1}相同}。