Hi!
Something like
let f x = log(x)
and later I can apply f to matrix, vector or a float.
I guess it is not possible since F# is strictly static typed. Any other patters to overcome this problem?
Thanks!
Hi!
Something like
let f x = log(x)
and later I can apply f to matrix, vector or a float.
I guess it is not possible since F# is strictly static typed. Any other patters to overcome this problem?
Thanks!
You can use operator overloading for types/classes:
type Fraction =
{ n : int; d : int; }
static member (+) (f1 : Fraction, f2 : Fraction) =
{ n = f1.n * f2.d + f2.n * f1.d; d = f1.d * f2.d }
or inlined functions:
> let inline fi a b = a+b;;
val inline fi :
^a -> ^b -> ^c when ( ^a or ^b) : (static member ( + ) : ^a * ^b -> ^c)
See my answer to this question:
http://stackoverflow.com/questions/501069/f-functions-with-generic-parameter-types
Briefly: