let numbers = [1;2;2;3;3;3;4;5;5]
let addElement (acc:Map<int,int>) element =
if acc.ContainsKey element then acc.Add(element, acc.[element] + 1)
else acc.Add(element, 1)
(Map.empty, numbers)
||> Seq.fold (addElement)
|> Map.iter (printfn "%A - %A")