The code might be clean, but it is mostly written in an imperative way (which isn't what clojure is meant to be), so I'd highly suggest not to use this as a learning material