Thinking in Ruby, Scala. and Clojure