package wordcount import ( "regexp" "strings" ) // TestVersion is an exercism thing const TestVersion = 1 // Frequency is the return type type Frequency map[string]int // WordCount returns how many of each word in 'phrase' func WordCount(phrase string) Frequency { ret := make(Frequency) words := strings.Split(phrase, " ") cleanUp, _ := regexp.Compile("[^A-Za-z0-9]") for _, v := range words { // The test cases assume that we're stripping non-alphanumeric runes // and making it lower case v = strings.ToLower(cleanUp.ReplaceAllString(v, "")) if v != "" { ret[v]++ } } return ret }