我在C#中有下一个代码(方法的参数):
Func<Func<string, Stream>, Action<string, string>, T> save
但我不知道在F#中是否
save: ((string -> Stream) -> (string -> string -> unit)) -> 'T
或
save: (string -> Stream) -> (string -> string -> unit) -> 'T
答案 0 :(得分:4)
我们假设'a
为string -> string -> unit
且'b
为'T
且'c
为('a -> 'b) -> 'c
'a -> 'b -> 'c
。
现在我们已经删除了更高阶的函数,这更容易思考,问题归结为:以下类型签名之间的区别是什么?
'a
第一种类型是一个函数,它将'b
到'a
的函数作为唯一的参数。第二个是一个函数,它以'b
作为第一个参数,Func<A, B, C>
作为第二个参数。第二个与C#类型签名isConnectionError = True
兼容。