F#:如何定义将 2 个浮点数相加的函数?在函数签名中指定 "Float"?
F#: how to define a function to add up 2 floats? Specify "Float" in function signature?
没有类型说明,F# 函数定义似乎只接收 int 类型。我不想使用泛型编程,只想声明一个函数来接收 2 个浮点类型,将它们加在一起:
> let g a b=a+b;;
val g : a:int -> b:int -> int
如何更改我的声明?谢谢
您可以将类型注释添加到结果或参数以将推断类型更改为 float
。
let f1 x y : float = x + y
let f2 (x: float) y = x + y
val f1 : x:float -> y:float -> float
val f2 : x:float -> y:float -> float
或者您可以使用 inline function
let inline f x y = x + y
val inline f :
x: ^a -> y: ^b -> ^c
when ( ^a or ^b) : (static member ( + ) : ^a * ^b -> ^c)
如您所见,内联函数适用于任何具有 +
运算符
的类型
f 1 2
f 1.4 1.2
f "foo" "bar"
没有类型说明,F# 函数定义似乎只接收 int 类型。我不想使用泛型编程,只想声明一个函数来接收 2 个浮点类型,将它们加在一起:
> let g a b=a+b;;
val g : a:int -> b:int -> int
如何更改我的声明?谢谢
您可以将类型注释添加到结果或参数以将推断类型更改为 float
。
let f1 x y : float = x + y
let f2 (x: float) y = x + y
val f1 : x:float -> y:float -> float
val f2 : x:float -> y:float -> float
或者您可以使用 inline function
let inline f x y = x + y
val inline f :
x: ^a -> y: ^b -> ^c
when ( ^a or ^b) : (static member ( + ) : ^a * ^b -> ^c)
如您所见,内联函数适用于任何具有 +
运算符
f 1 2
f 1.4 1.2
f "foo" "bar"