【发布时间】:2009-12-20 15:35:07
【问题描述】:
类似
let f x = log(x)
以后我可以将 f 应用于矩阵、向量或浮点数。
我猜这是不可能的,因为 F# 是严格静态类型的。有什么其他模式可以解决这个问题吗?
谢谢!
【问题讨论】:
标签: .net f# functional-programming
类似
let f x = log(x)
以后我可以将 f 应用于矩阵、向量或浮点数。
我猜这是不可能的,因为 F# 是严格静态类型的。有什么其他模式可以解决这个问题吗?
谢谢!
【问题讨论】:
标签: .net f# functional-programming
查看我对这个问题的回答:
Functions with generic parameter types
简单地说:
【讨论】:
您可以对类型/类使用运算符重载:
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 }
或内联函数:
> let inline fi a b = a+b;;
val inline fi :
^a -> ^b -> ^c when ( ^a or ^b) : (static member ( + ) : ^a * ^b -> ^c)
【讨论】: