RosettaCodeData/Task/Entropy/Haskell/entropy-2.hs

13 lines
264 B
Haskell

import Data.List (genericLength, group, sort)
entropy
:: (Ord a, Floating c)
=> [a] -> c
entropy =
sum .
map (negate . ((*) <*> logBase 2)) .
(map =<< flip (/) . sum) . map genericLength . group . sort
main :: IO ()
main = print $ entropy "1223334444"