如何实现静态解析的类型参数?
具体来说,我想让函数适用于所有数字类型.
我尝试过以下方法:
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)