make function work with all numeric types (int, float, long)
f#
Solution
Use inline:
let inline sum a b = a + b
UPDATE:
If you're interested in writing your own polymorphic numerical functions, you should use both inline and LanguagePrimitives module.
Here is a polymorphic cosine function from the thread 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
Problem
this simple function: ``` let sum a b = a + b ``` will work only for int types how to make it so that it would also work for float and long ?