make函数适用于所有数字类型(int,float,long)

Omu*_*Omu 3 f#

这个简单的功能:

let sum a b = a + b
Run Code Online (Sandbox Code Playgroud)

仅适用于int类型

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

pad*_*pad 8

使用内联:

let inline sum a b = a + b
Run Code Online (Sandbox Code Playgroud)

更新:

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

这是从转换Haskell Polymorphic余弦函数到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
Run Code Online (Sandbox Code Playgroud)

  • @ChuckNorris:你认为不对.抛开你对内联意味着什么的先入为主的概念,并阅读它对于F#_的含义. (3认同)