Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
(fn [{:keys [states start accepts transitions]}]
((fn words [queue]
(when (seq queue)
(let [[state path] (peek queue)
more-results (words (into (pop queue)
(for [[letter state] (transitions state)]
[state (conj path letter)])))]
(if (accepts state)
(cons (apply str path)
(conj clojure.lang.PersistentQueue/EMPTY
[start []])))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment