是否可以使用&#34; int - &gt;表达式? (int - &gt; int)= <fun>&#34;类型?

时间:2016-05-02 09:39:59

标签: ocaml

对于(int -> int) -> int = <fun>,相应的表达式可以是fun x -> (x 1) + 1 是否可以使用int -> (int -> int) = <fun>类型的表达式?如果不是那么为什么?

2 个答案:

答案 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