module Main where
main = interact $ showOutput . process . readInput
showOutput = id
process = id
readInput = id
####
module Main where
import qualified Data.Map as Map
main = interact $ showOutput . process . readInput
showOutput = unlines . Map.foldWithKey show1 []
process = foldl accumulate Map.empty
readInput = words
show1 key count = (unwords [key, show count] :)
accumulate hash key = Map.insertWith (+) key 1 hash
##
##
module Main (main) where
import Control.Monad
import qualified Data.Map as Map
import System.Environment
main = control $ showOutput . process . readInput
showOutput = unlines . Map.foldWithKey show1 []
process = foldl accumulate Map.empty
readInput = words
show1 key count = (unwords [key, show count] :)
accumulate hash key = Map.insertWith (+) key 1 hash
control f = readFiles >>= writeIndex . f
readFiles = getArgs >>= liftM concat . mapM readFile
writeIndex = writeFile "words.index"