Settings

Theme

Ask HN: Lisp or Haskell at first?

6 points by sudeep1 11 years ago · 6 comments · 1 min read


(I am not creating war and comparing Lisp and Haskell)

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.

moron4hire 11 years ago

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.

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.

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.

  • gus_massa 11 years ago

    It could be useful to learn an "almost" functional version of Lisp, like Scheme/Racket or Clujure. (You can also try to write "almost" functional code in Common Lisp, but the usual idioms are more imperative.)

    The idea is that you write "almost" all the code in small functional functions without side effects, but you can use side effect when the functional solution is very difficult.

    Most of them are not typed (there is a Typed Racket version, but the type system is not similar to the Haskell type system).

codygman 11 years ago

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:

http://shenlanguage.org/

SamReidHughes 11 years ago

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).

jagawhowho 11 years ago

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.

Haskell the language is powered by the tears of the gods. But it may not have the world class tooling you get with lisp.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection