f# – 使函数适用于所有数值类型(int,float,long)

前端之家收集整理的这篇文章主要介绍了f# – 使函数适用于所有数值类型(int,float,long)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这个简单的功能
let sum a b = a + b

将仅适用于int类型

如何使它也适用于漂浮和长时间?

解决方法

使用 inline
let inline sum a b = a + b

更新:

如果您对编写自己的多态数字函数感兴趣,则应使用inlineLanguagePrimitives模块.

这是来自线程Converting Haskell Polymorphic Cosine function to F#的多态余弦函数

let inline cosine n (x: ^a) = 
    let one: ^a = LanguagePrimitives.GenericOne
    Seq.initInfinite(fun i -> LanguagePrimitives.DivideByInt (- x*x) ((2*i+1)*(2*i+2)))
    |> Seq.scan (*) one
    |> Seq.take n
    |> Seq.sum

猜你在找的CSS相关文章