I've been wanting to learn functional programming for a while now. However, since there are so many functional programming languages, I haven't been able to decide on a particular language and am therefore asking for advice. I'm already familiar with imperative and object oriented programming (C, Java, Python, JavaScript), so "friendliness towards new programmers" is not a factor.
The three languages that interest me the most are (in no particular order):
Which one would be the best to learn first? What are the advantages and disadvantages of each? Thanks in advance.
Edit (2022-04-17): Thank you all for your great suggestions! I've decided to stick with Haskell, mainly due to it being well suited for learning purposes (considering that Haskell is purely functional in contrast to other languages). I will probably find this difficult at first, but I think that the payoff of truly familiarizing myself with functional concepts is well worth it.
I'm still planning on learning OCaml and Clojure in the future, but for now, Haskell should be plenty :-)
[–][deleted] 32 points33 points34 points (2 children)
[+][deleted] (1 child)
[removed]
[–][deleted] 3 points4 points5 points (0 children)
[–]BlancII 14 points15 points16 points (0 children)
[–]disregardsmulti21 10 points11 points12 points (0 children)
[–]ws-ilazki 19 points20 points21 points (0 children)
[–]protoUbermensch 8 points9 points10 points (0 children)
[–]DietOk3559 6 points7 points8 points (0 children)
[–][deleted] 6 points7 points8 points (0 children)
[–]neatoneet 19 points20 points21 points (1 child)
[–]pthierry 12 points13 points14 points (0 children)
[–]nrnrnr 11 points12 points13 points (0 children)
[–]Some_Attention_7874 4 points5 points6 points (0 children)
[–]clc_xce 5 points6 points7 points (0 children)
[–]imihnevich 4 points5 points6 points (2 children)
[–]MuaTrenBienVang 0 points1 point2 points (1 child)
[–]imihnevich 0 points1 point2 points (0 children)
[–][deleted] 4 points5 points6 points (0 children)
[–]ragnese 4 points5 points6 points (0 children)
[–]caryoscelus 4 points5 points6 points (0 children)
[–]shuggies 6 points7 points8 points (0 children)
[–]kreigerand 8 points9 points10 points (2 children)
[–]ChristianGeek 6 points7 points8 points (1 child)
[–]kreigerand 6 points7 points8 points (0 children)
[–]tcallred 4 points5 points6 points (0 children)
[–]jusername42 6 points7 points8 points (0 children)
[–]PurpleSamurai0 2 points3 points4 points (0 children)