有一个代码:
//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
据我了解,这些功能应该产生相同的结果,但结果有很大差异。谁能解释一下?
ps 简化示例:
let test = [|1..10|]
let res = test
|> Array.sum
|> (/) 5
我期望 test = 11 (sum(1..10) = 55 然后 55 / 5) 但是在 Array.sum 管道没有按我想要的那样工作之后(结果 test = 0)。