предоставляет более функциональное решение, но я бы с радостью отказался от «чистоты» для увеличения скорости в 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 #, я не вижу пути к тому же со списками. Нужно ли использовать изменяемые переменные, или есть функциональный способ сделать то же самое со списками?

Ответы на вопрос(3)

Ваш ответ на вопрос