elm/exercises/word-count/WordCount.example

24 lines
493 B
Text

module WordCount exposing (..)
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
depunctuate : String -> String
depunctuate =
Regex.replace Regex.All (Regex.regex "[^a-z0-9 ]") (\_ -> "")
incrMaybe : Maybe Int -> Maybe Int
incrMaybe maybe =
(Maybe.withDefault 0 maybe) + 1 |> Just