предоставляет более функциональное решение, но я бы с радостью отказался от «чистоты» для увеличения скорости в 4 раза
вая последовательность кортежей id / value группы, было легко вычислить итоги группы (почти так же, как я сделал бы это с C # и LINQ):
let items = ["g1",5; "g2",10; "g1",20]
let groupsums =
items
|> Seq.groupBy (fun x -> fst x)
|> Seq.map (fun (g, s) -> Seq.fold (fun acc x -> acc + snd x) 0 s)
Но, будучи новичком в F #, я не вижу пути к тому же со списками. Нужно ли использовать изменяемые переменные, или есть функциональный способ сделать то же самое со списками?