type Test() =
member t.A(a: int -> int) (b: int) = ()
let cl = Test()
let f a b =
(^a : (member A: (int -> int) -> int -> unit) cl, a, b)
以上说它无法找到成员或对象构造函数A
。是否有可能以某种方式使上述工作?
答案 0 :(得分:4)
不,没有改变定义就无法调用它。 我不确定它是否符合规范,但您可以在the source code中找到限制,过滤掉咖喱成员。
无论如何,如果你想使用curried参数,你可以使用lambda函数,它将起作用:
type Test() =
member t.A(a: int -> int) = fun (b: int) -> ()
let cl = Test()
let f a b =
(^a : (member A: (int -> int) -> (int -> unit)) cl, a) b