F# を学習しようとしていますが、 foldとreduceを区別しようとして混乱しました。Fold も同じことをしているように見えますが、追加のパラメーターが必要です。これら 2 つの機能が存在する正当な理由はありますか? それとも、異なるバックグラウンドを持つ人々に対応するために存在するのでしょうか? (例: 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])