let g a b=a+b;; val g : a:in-6ren">
gpt4 book ai didi

function - F#:如何定义一个函数来将 2 个 float 相加?在函数签名中指定 "Float"?

转载 作者:行者123 更新时间:2023-12-02 19:51:44 26 4
gpt4 key购买 nike

如果没有类型规范,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"

关于function - F#:如何定义一个函数来将 2 个 float 相加?在函数签名中指定 "Float"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35690796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com