Skip to content

Instantly share code, notes, and snippets.

@tomasmuller
Created November 16, 2016 11:25
Show Gist options
  • Save tomasmuller/961036ec31b6fb8f29be7c7ea4c28258 to your computer and use it in GitHub Desktop.
Save tomasmuller/961036ec31b6fb8f29be7c7ea4c28258 to your computer and use it in GitHub Desktop.
Brave and True - Chapter 10 (metaphysics) - Exercise 2
(def frequency-table (atom {}))
(defn random-quote []
(slurp "http://www.braveclojure.com/random-quote"))
(defn word-frequencies [s]
(frequencies (str/split (.toLowerCase s) #"\W+")))
(defn update-frequency-table []
(swap! frequency-table (fn [current-state] (merge-with + current-state (word-frequencies (random-quote))))))
(defn quote-word-count [n]
(let [promisses (take n (repeatedly promise))]
(doseq [p promisses]
(future
(update-frequency-table)
(deliver p true)))
(every? deref promisses))
@frequency-table)
(quote-word-count 5)
(comment
(reset! frequency-table {})
(println @frequency-table))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment