Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在OCaml中返回函数的函数类型及其显示方式_Ocaml - Fatal编程技术网

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

在OCaml中返回函数的函数类型及其显示方式,ocaml,Ocaml,我正在学习一个测试,其中一个实践问题是编写一个(int->int)->(int->int)类型的函数。提供的答案 fun x y -> (x 1) + y 但是当我把类似的东西 let funct x y = (x 1) + y;; 它会吐出(int->int)->int->int。这和带额外括号的版本有什么不同吗。如果是如何,如果否为什么不?没有不同,->是正确的。与(1-2)-(3-4)与1-2-(3-4)相同的原因(减法是左关联的,效果是镜像的) 这取决于OCaml中是否存在cu

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

fun x y -> (x 1) + y
但是当我把类似的东西

let funct x y = (x 1) + y;;

它会吐出(int->int)->int->int。这和带额外括号的版本有什么不同吗。如果是如何,如果否为什么不?

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


这取决于OCaml中是否存在currying,也就是说,一个参数的函数返回一个参数的函数与两个参数的函数是不可区分的,即
F12
(F1)2
没有区别,
->
是右关联的。与
(1-2)-(3-4)
1-2-(3-4)
相同的原因(减法是左关联的,效果是镜像的)


这取决于OCaml中是否存在currying,即一个参数的函数返回一个参数的函数与两个参数的函数无法区分这一事实,即
f 1 2
(f 1)2
相同,这是一个巨大的帮助。非常感谢。这是一个巨大的帮助。非常感谢你。