
Ask HN: Clojure vs. Haskell? - colobas
Which of these would you recommend to someone with zero experience in functional programming?
======
midgetjones
Which language(s) do you know already? If it's possible, have you looked at
the state of FP in something you're already familiar with?

For example, this guide in JavaScript is pretty good:
[https://github.com/MostlyAdequate/mostly-adequate-
guide/](https://github.com/MostlyAdequate/mostly-adequate-guide/)

Or in Ruby, while you still have to create classes, you could explore writing
pure functions and not changing state.

Personally I feel like there's too many stumbling blocks in both those
languages (unless you've got Lisp experience or are really into mathematics),
and just getting used to the concepts in a more familiar environment will be
more useful than scratching your head about monads.

~~~
colobas
C and Python are the languages in which I've done most of my work (I'm still a
student). In fact I didn't look to see how's FP done in those languages with
which I'm most familiar and that does sound like good advice. Thanks!

~~~
brudgers
For a student, I would recommend Racket over Haskell and Clojure because:

1\. It is very easy to set up a batteries included development environment.

2\. The community is dedicated to teaching students functional programming
principles.

3\. The Racket ecosystem provides tools for learning other programming
paradigms including: lazy, statically typed, declarative, reactive, meta-
programming, etc.

4\. The sweet spot of Clojure is professional developers. There is often an
assumption of foundational knowledge of the JVM [or Javscript in the case of
Clojurescript].

5\. The sweet spot of Haskell is programmers with a strong computer science
background. The literature and discussion tends to be more toward the academic
journal paper end of the spectrum.

Good luck.

------
kimi
It depends: what do you want to build? I like Clojure a bit more, and for me
the JVM + ClojureScript are a deal. I like Haskell's syntax a bit less, though
Haskell types rock; the ecosystem is less developed as you cannot just import
a gazillion of mature Java libraries.

------
Learn2win
Haskell

