我這樣做:如何做操作符重載?
let (-) (m:float[]) (n:float[])= [| for i = 0 to Array.length m - 1 do yield m.[i]-n.[i] |]
但是,爲什麼這是錯的?
let y=1.0-0.0
以前沒事!
Error 1 This expression was expected to have type float [] but here has type float E:\MyDocuments\Visual Studio 2010\Projects\curve intersection\newton\Module1.fs 28 7 newton
Error 2 This expression was expected to have type float [] but here has type float E:\MyDocuments\Visual Studio 2010\Projects\curve intersection\newton\Module1.fs 28 11 newton
我認爲(M:浮動[])(N:浮動[])被設定的參數的類型,爲什麼1.0-0.0,浮浮動,而不是去使用( - )浮動浮子>浮動???
謝謝,這是reasion。爲什麼F#不喜歡C#,按類型標識參數? – Begtostudy 2010-08-25 08:23:19
因爲他們是不同的語言?這裏有一些相互作用,我不能在評論中總結。簡而言之,在F#中,let-bound標識符不能被特別重載。 – Brian 2010-08-25 08:26:22