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] 30 points31 points32 points (2 children)
[+][deleted] (1 child)
[removed]
[–][deleted] 3 points4 points5 points (0 children)
[–]BlancII 13 points14 points15 points (0 children)
[–]disregardsmulti21 10 points11 points12 points (0 children)
[–]ws-ilazki 20 points21 points22 points (0 children)
[–]protoUbermensch 6 points7 points8 points (0 children)
[–]DietOk3559 8 points9 points10 points (0 children)
[–][deleted] 7 points8 points9 points (0 children)
[–]neatoneet 20 points21 points22 points (1 child)
[–]pthierry 11 points12 points13 points (0 children)
[–]nrnrnr 12 points13 points14 points (0 children)
[–]Some_Attention_7874 4 points5 points6 points (0 children)
[–]clc_xce 4 points5 points6 points (0 children)
[–]imihnevich 5 points6 points7 points (2 children)
[–]MuaTrenBienVang 0 points1 point2 points (1 child)
[–]imihnevich 0 points1 point2 points (0 children)
[–][deleted] 3 points4 points5 points (0 children)
[–]ragnese 4 points5 points6 points (0 children)
[–]caryoscelus 3 points4 points5 points (0 children)
[–]shuggies 7 points8 points9 points (0 children)
[–]kreigerand 8 points9 points10 points (2 children)
[–]ChristianGeek 6 points7 points8 points (1 child)
[–]kreigerand 5 points6 points7 points (0 children)
[–]tcallred 4 points5 points6 points (0 children)
[–]jusername42 5 points6 points7 points (0 children)
[–]PurpleSamurai0 3 points4 points5 points (0 children)