尝试学习 F#,但在尝试区分fold和reduce时感到困惑。折叠似乎做同样的事情,但需要一个额外的参数。这两个功能的存在是否有正当理由,或者它们的存在是为了容纳不同背景的人?(例如:C# 中的字符串和字符串)
这是从示例中复制的代码片段:
let sumAList list =
List.reduce (fun acc elem -> acc + elem) list
let sumAFoldingList list =
List.fold (fun acc elem -> acc + elem) 0 list
printfn "Are these two the same? %A "
(sumAList [2; 4; 10] = sumAFoldingList [2; 4; 10])