title: What to learn? Lisp or OCaml or...?
body: <p>I already have a few languages under my belt (in a rough order of expertise): Python, C, C++, PHP, Javascript, Haskell, Java, MIPS, x86 assembler. But it's been almost 2 years since I learned a new one, and I'm starting to get the itch. I have a few criteria:</p>
  
  <ol>
  <li>Must (repeat: must) have a free Linux implementation</li>
  <li>Should be different from the languages I already know. In other words, it should have features that get me thinking about solving problems in a new way.</li>
  <li>Should have some potential for practical use. It doesn't need to be the next Java, but this rules out Brainf* and Shakespeare :) I don't really care how many job postings does it have, but real-world apps and libraries are a plus.</li>
  <li>Should have at least just enough free learning materials to get me started in it.</li>
  </ol>
  
  <p>I was thinking Lisp (CL? something else?) or OCaml. I already have some experience with functional languages with Haskell (yes I know that Lisp/OCaml are multi-paradigm). I'm not an expert - e.g. parts of code from Real World Haskell can still contort my brain, but I understand the basic concepts and some advanced ones (functors, monads).</p>
  
  <p>Which one to choose? Any other languages that I have overlooked? Also, could you please include some useful links to good books/tutorials etc.</p>