Thanks for the recommendations. A lot of people are suggesting different functional programming languages here -- Erlang, Clojure, Haskell, Scala and Lisp. I'm becoming more and more interested in learning Lisp before trying the other languages. What do you think of such an approach? Would it help me understand Erlang/Haskell/Clojure/Scala better in the future?