My new solution to http://www.4clojure.com/problem/solutions/177 .