09/07/30 11:18:28
>>583
-- Haskell
import Data.Char (isAlpha)
import Data.Map (Map, fromListWith, toList)
countChar :: String -> Map Char Int
countChar = fromListWith (+) . flip zip (repeat 1) . filter isAlpha
main = getContents >>= mapM_ putStrLn . prettify . countChar
where
prettify :: Map Char Int -> [String]
prettify = map (\(k,v) -> k : ": " ++ (replicate v '*')) . toList