F# 使用类型缩写/别名时,为什么要使用fun关键字?
在下面的示例中,我使用类型缩写。为什么我应该使用fun关键字而不是不使用fun关键字来调用它F# 使用类型缩写/别名时,为什么要使用fun关键字?,f#,F#,在下面的示例中,我使用类型缩写。为什么我应该使用fun关键字而不是不使用fun关键字来调用它 type AdditionFunction = int->int->int let f:AdditionFunction = fun a b -> a + b 因为否则您无法使用AdditionFunctiontype对其进行注释。你需要把它放在一个类型为int->int->int的值上,而F#syntax的工作方式是,你无法使用let-bound样式 你的选择是: let f :
type AdditionFunction = int->int->int
let f:AdditionFunction = fun a b -> a + b
因为否则您无法使用
AdditionFunction
type对其进行注释。你需要把它放在一个类型为int->int->int
的值上,而F#syntax的工作方式是,你无法使用let-bound样式
你的选择是:
let f : int -> int -> int =
fun a b -> ...
let f a : int -> int =
fun b -> ...
let f a b : int =
...
只有第一个具有可以替换为别名的类型
但最终你不需要这么做。您可以将它定义为int->int->int
函数,并且您仍然可以在任何使用AdditionFunction
的地方使用它
在一天结束时,类型别名只是-别名。它们可以与它们所代表的类型互换使用,并在编译过程中被删除