As others have mentioned, CL is not a pure functional language like Haskell.<p>However it is possible in CL to write parts of many programs in a functional style.  Further, my functional collections library, FSet [0], greatly expands the amount of code that can be written this way, bringing CL much closer to being a functional language.  One FSet user told me that it had changed the way he thinks about programming in CL -- which I think reflects an intellectual transition that is at least a good part of the transition one would hope to make by learning Haskell.<p>If you do go with CL, you might want to check it out.  (It&#x27;s in Quicklisp as &quot;fset&quot;.)<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;slburson&#x2F;fset" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;slburson&#x2F;fset</a>