A very tough question. We would need to know more of your background. Haskell is purely functional, with anything impure cast as a monad I think. OCaml is nice and let's you use OO as well. F# is basically OCaml on .NET. Common Lisp is multi-paradigm (imperative, functional, OO, even logic)...there are several others as well. Clojure is a lisp on the JVM that tries to be just functional, but allows you to leverage Java libraries when needed. Clojure has a lot of good things going for it, but I understand that the debugging experience is inferior to Common Lisp as you mainly get Java stack traces. So do you develop on Mac, Linux, or Windows? Do you already know Java? Do you need multicore parallel programming? How much time do you have to invest?