[英]Is it possible to do function overloading in F#?
就像是
let f x = log(x)
后來我可以將f應用於矩陣,向量或浮點數。
我想這是不可能的,因為F#是嚴格靜態類型的。 任何其他模式來克服這個問題?
謝謝!
看看我對這個問題的回答:
簡述:
您可以對類型/類使用運算符重載:
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.