Added Clojure functional solution