(I am not creating war and comparing Lisp and Haskell)<p>I want to learn Haskell and Lisp. But I am in puzzle to learn which one at first. If i learn Haskell first and it will be easier to learn Lisp or Learning Lisp at first will help to learn Haskell.
Having studied Lisp and recently started on Haskell, I find Lisp to have a shallower learning curve. For Lisp, people fear the day they have to learn its macros. For Haskell, that monster lurking in the closet is the type system.<p>But you can be productive in (most) Lisp(s) without touching macros. It is often suggested to try very hard to do so. And I've personally found that, library spelling issues aside, Python code translates almost 1-to-1 to Lisp with simple text replacements.<p>But any non-trivial application in Haskell is going to have to approach problems in fairly different ways than any other language. Lazy evaluation; pure, side-effect-free functions; types and type classes and all that jazz; emphasis on solutions involving the "fold" function, rather than recursion. It's significantly different than most other languages I've encountered.
If you've learned no languages learn Haskell first. If you have experience with imperative languages, learn LISP first. If you decide on learning a lisp but still want static typing, checkout Shen:<p><a href="http://shenlanguage.org/" rel="nofollow">http://shenlanguage.org/</a>
Definitely Haskell. There are so many dynamically typed impure functional languages these days, and Lisp is not some great learning experience. Haskell is (if you take it to a sufficient degree of crazy).
I vote for learning lisp first. Lisp is nice in that it is not married to a paradigm. Sometimes a stateful solution is the ideal. Although not part of the language, the interactive environment (slime) coupled with manipulation tools (paredit) make lisp feel like an extension of your fingertips. It's hard to describe.<p>Haskell the language is powered by the tears of the gods. But it may not have the world class tooling you get with lisp.