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

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效