🎉 Exercism Research is now launched. Help Exercism, help science and have some fun at research.exercism.io 🎉 # nihilismus's solution

## to Word Count in the Clojure Track

Published at Sep 04 2020 · 0 comments
Instructions
Test suite
Solution

Given a phrase, count the occurrences of each word in that phrase.

For example for the input `"olly olly in come free"`

``````olly: 2
in: 1
come: 1
free: 1
``````

## Source

This is a classic toy problem, but we were reminded of it by seeing it in the Go Tour.

## Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.

### word_count_test.clj

``````(ns word-count-test
(:require [clojure.test :refer [deftest is]]
word-count))

(deftest count-one-word
(is (= {"word" 1}
(word-count/word-count "word"))))

(deftest count-one-of-each
(is (= {"one" 1 "of" 1 "each" 1}
(word-count/word-count "one of each"))))

(deftest count-multiple-occurrences
(is (= {"one" 1 "fish" 4 "two" 1 "red" 1 "blue" 1}
(word-count/word-count "one fish two fish red fish blue fish"))))

(deftest ignore-punctuation
(is (= {"car" 1, "carpet" 1 "as" 1 "java" 1 "javascript" 1}
(word-count/word-count "car : carpet as java : javascript!!&@\$%^&"))))

(deftest include-numbers
(is (= {"testing" 2 "1" 1 "2" 1}
(word-count/word-count "testing, 1, 2 testing"))))

(deftest normalize-case
(is (= {"go" 3}
(word-count/word-count "go Go GO"))))``````
``````(ns word-count
(:require [clojure.string :as str]))

(defn word-count [string]
(->> string
(str/lower-case)
(re-seq #"\w+")
(frequencies)))``````