RosettaCodeData/Task/Averages-Mode/Haskell/averages-mode-1.hs
Ingy döt Net 0457928c3e ...
2013-04-10 15:42:53 -07:00

6 lines
251 B
Haskell

import Prelude (foldr, maximum, (==), (+))
import Data.Map (insertWith', empty, filter, elems, keys)
mode :: (Ord a) => [a] -> [a]
mode xs = keys (filter (== maximum (elems counts)) counts)
where counts = foldr (\x -> insertWith' (+) x 1) empty xs