Common Lisp is functional in the sense of being based on Lambda calculus, but with all sorts of imperative and OO things bolted on.<p>Haskell is functional in the sense most people think (maths &#x27;n things, functions with no side effects), with a few &#x27;outs&#x27; (monads or &#x27;containers&#x27; for doing imperative-like things).<p>If you want a &#x27;functional&#x27; language, choose Haskell.  If you want a language you can bend to your will, where you&#x27;ll be making your own abstractions, writing a DSL, etc..., choose Common Lisp.  Actually Haskell isn&#x27;t even bad for that, so if your friends are using Haskell, just try that.