Introduction to functional programming with Clojure