

Ask HN: What functional programming language should I start with? - subnetvj

Hi All,<p>I have been programming in C/C++/Python for some years now.
Now, I am going start learning a functional programming language, but don't know which one to start with.
Some comments on which is the best to start with and why, would be great.<p>Cheers !!
======
chewxy
Haskell is a good place to start. I personally got into functional programming
from forcing myself to learn what lambda x in python does, and I learned
Haskell soon after. I think it's an easy-to-learn FP language

~~~
rprospero
Just curious: What functional languages would you find more difficult to learn
than Haskell?

------
rohit89
I started with Haskell because it forces you to write programs in a functional
way. If you're interested, Learn You a Haskell for Great Good
(<http://learnyouahaskell.com/>) is an excellent introduction.

------
Xurinos
Erlang. It is a reasonable stepping stone towards Haskell and will introduce
you to some new concepts and syntax. It is also a simple language. Then tackle
Haskell, which will build upon what you learned in Erlang.

------
axk
Haskell if you are an artist. OCaml (without the OOP stuff, no one uses it any
way) if you are a plumber.

------
mcpherrinm
A Lisp dialect is surely the right choice if you are new to functional
programming. The language itself is very simple, so it won't get in your way
as much as some alternatives.

I recommend starting with racket and the free textbook "how to design
programs" especially if you are not comfortable with recursion. It is pretty
introductory, so you may be able to plow through the exercises quickly.

MIT's classic SICP is another great starting point, especially if you have an
adequate academic background.

------
nicklovescode
My suggestion is to bite the bullet and learn Haskell

------
robdoherty2
This is a question that's been on my mind lately as well. What are people's
opinions of LISP, or variations thereof?

~~~
pavelludiq
I've played around with at least half a dozen lisp dialects. Currently only
Clojure and Common Lisp are good practical general purpose lisps(maybe Racket
too, but I've only played with r5rs Scheme, so I don't know for sure). Both
are excellent languages, both with their own strengths and weaknesses. After
using Common Lisp for a while now, its my favorite language, and Clojure comes
in as a very close second. IMHO these are the two BEST dynamically typed
languages that are currently used in practice.

Choosing between the two could be hard, but my general advice is that if one
prefers a more strict FP approach, Clojure is better, and if one prefers to
have more choice over what paradigm to use when, a good multi-paradigm
language like Common Lisp can make you happy. I happen to like the latter.
Which reminds me, I have a lot of lisp hacking to do, enough HN for the
evening.

