有代碼:如何F#的管道運營商工作
//e = 1/2*Sum((yi -di)^2)
let error y d =
let map =
Array.map2 (fun y d -> (y - d) ** 2.0) y d
let sum =
Array.sum map
(sum/2.0)
let error2 y d =
Array.map2 (fun y d -> (y - d) ** 2.0) y d
|> Array.sum
|> (/) 2.0
我瞭解這些功能應該產生相同的結果,但也有在結果相差很大。任何人都可以解釋嗎?
p.s.簡化的例子:
let test = [|1..10|]
let res = test
|> Array.sum
|> (/) 5
我期望測試= 11(總和(1..10)= 55,然後55/5),但之後Array.sum管道不工作,因爲我想(如測試結果= 0) 。
你能解釋一下在這種情況下如何工作(/)操作符? –
@DmitryMartovoi - 請參閱編輯 –
你想說它會被解釋爲'b/a'而不是'a/b'嗎? –