To Clojure and Back: Writing and Rewriting in Ruby

Functional Programming