对于(int -> int) -> int = <fun>
,相应的表达式可以是fun x -> (x 1) + 1
是否可以使用int -> (int -> int) = <fun>
类型的表达式?如果不是那么为什么?
答案 0 :(得分:0)
是的,当然。您只需将函数作为值返回即可。例如:
let f j = fun i -> j + i;;
val f : int -> int -> int = <fun>
f 1;;
- : int -> int = <fun>
(f 1) 2;;
- : int = 3
答案 1 :(得分:0)
是否可以使用
int -> (int -> int)
类型的表达式?
因为->
是右关联的,所以类型int -> (int -> int)
= int -> int -> int
,尽管隐含了括号。所以你正在寻找的函数是一个简单的curried函数,它有两个参数,例如
let f x y = x + y