Ruby, Clojure, and Ceylon: same goal, three very different results