是否可以使用 "int -> (int -> int) = <fun>" 类型的表达式?
Is it possible to have an expression with the "int -> (int -> int) = <fun>" type?
对于(int -> int) -> int = <fun>
对应的表达式可以是fun x -> (x 1) + 1
.
是否可以使用 int -> (int -> int) = <fun>
类型的表达式?如果不是那为什么?
当然可以。你只需要 return 一个函数作为一个值。例如:
let f j = fun i -> j + i;;
val f : int -> int -> int = <fun>
f 1;;
- : int -> int = <fun>
(f 1) 2;;
- : int = 3
Is it possible to have an expression with int -> (int -> int)
type?
因为->
是右结合的,类型int -> (int -> int)
= int -> int -> int
,虽然隐含了括号。所以你正在寻找的函数是一个简单的柯里化函数,它有两个参数,例如
let f x y = x + y
对于(int -> int) -> int = <fun>
对应的表达式可以是fun x -> (x 1) + 1
.
是否可以使用 int -> (int -> int) = <fun>
类型的表达式?如果不是那为什么?
当然可以。你只需要 return 一个函数作为一个值。例如:
let f j = fun i -> j + i;;
val f : int -> int -> int = <fun>
f 1;;
- : int -> int = <fun>
(f 1) 2;;
- : int = 3
Is it possible to have an expression with
int -> (int -> int)
type?
因为->
是右结合的,类型int -> (int -> int)
= int -> int -> int
,虽然隐含了括号。所以你正在寻找的函数是一个简单的柯里化函数,它有两个参数,例如
let f x y = x + y