https://www.4clojure.com/problems solutions