Skip to content

Instantly share code, notes, and snippets.

@remusao
Last active August 29, 2015 14:01
Show Gist options
  • Save remusao/213cabad5ecd00da8e82 to your computer and use it in GitHub Desktop.
Save remusao/213cabad5ecd00da8e82 to your computer and use it in GitHub Desktop.
Wordcount in Haskell
module Main where
import Data.List
import qualified Data.Text.Lazy.IO as TIO
import qualified Data.Text.Lazy as T
import qualified Data.Map.Strict as M
import System.Environment
import Control.Monad
type Str = T.Text
wordcount :: Str -> M.Map Str Int
wordcount str = foldl' (flip $ M.alter incr) M.empty (T.words str)
where
incr Nothing = Just 1
incr (Just count) = Just (count + 1)
main :: IO ()
main = do
args <- getArgs
when (length args == 1) $ do
content <- TIO.readFile $ head args
print $ M.size $ wordcount content
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment