elm/exercises/word-count/WordCount.example.elm

25 lines
515 B
Elm
Raw Normal View History

module WordCount exposing (..)
2016-03-12 11:34:35 +00:00
import String
import Dict exposing (Dict)
import Regex
wordCount : String -> Dict String Int
wordCount sentence =
sentence
|> String.toLower
|> depunctuate
|> String.words
|> List.foldl (\w d -> Dict.update w incrMaybe d) Dict.empty
2016-03-12 11:34:35 +00:00
depunctuate : String -> String
depunctuate =
Regex.replace Regex.All (Regex.regex "[^a-z0-9 ]") (\_ -> "")
2016-03-12 11:34:35 +00:00
incrMaybe : Maybe Int -> Maybe Int
incrMaybe maybe =
(Maybe.withDefault 0 maybe) + 1 |> Just