RosettaCodeData/Task/Averages-Mode/OCaml/averages-mode.ocaml
Ingy döt Net d066446780 langs a-z
2013-04-10 22:43:41 -07:00

13 lines
441 B
Text

let mode lst =
let seen = Hashtbl.create 42 in
List.iter (fun x ->
let old = if Hashtbl.mem seen x then
Hashtbl.find seen x
else 0 in
Hashtbl.replace seen x (old + 1))
lst;
let best = Hashtbl.fold (fun _ -> max) seen 0 in
Hashtbl.fold (fun k v acc ->
if v = best then k :: acc
else acc)
seen []