RosettaCodeData/Task/Entropy/Haskell/entropy.hs

9 lines
239 B
Haskell
Raw Permalink Normal View History

import Data.List
main = print $ entropy "1223334444"
2016-12-05 22:15:40 +01:00
entropy :: (Ord a, Floating c) => [a] -> c
entropy = sum . map lg . fq . map genericLength . group . sort
where lg c = -c * logBase 2 c
fq c = let sc = sum c in map (/ sc) c