如何实现静态解析的类型参数?

Sco*_*rod 4 f#

如何实现静态解析的类型参数?

具体来说,我想让函数适用于所有数字类型.

我尝试过以下方法:

let isAbsoluteProductGreaterThanSum a b =
     Math.Abs(a * b) > (a + b)

let inline isAbsoluteProductGreaterThanSum a b =
     Math.Abs(a * b) > (a + b)

let inline isAbsoluteProductGreaterThanSum ^a ^b =
     Math.Abs(^a * ^b) > (^a + ^b)

let inline isAbsoluteProductGreaterThanSum (val1:^a) (val2:^b) =
     Math.Abs(val1 * val2) > (val1 + val2)
Run Code Online (Sandbox Code Playgroud)

我确实查看了这个文档,但仍然无法解决我的问题.

Sze*_*zer 10

这将工作得很好:

let inline isAbsoluteProductGreaterThanSum a b =
    abs(a * b) > (a + b)
Run Code Online (Sandbox Code Playgroud)

这个签名就像:

val isAbsoluteProductGreaterThanSum: 
    a:  ^a (requires static member ( * ) and static member ( + ) )->
    b:  ^b (requires static member ( * ) and static member ( + ) )
    -> bool
Run Code Online (Sandbox Code Playgroud)