Which Functional Programming Language Should I Start With?

Depends quite a bit on which FP concepts you want to learn.

For suitability for personal projects and good learning resources/community, I’d definitely go for Elixir.

For a peek into the docs, have a look here: https://hexdocs.pm/elixir/1.18.2/introduction.html

Of all the FP languages I’ve worked with/played around with (Clojure, Haskell, OCaml, Racket, among others), it’s the language with the easiest setup/starting points by far.

It has sensible error messages (unlike Clojure), good documentation (unlike Haskell) that can be understood by beginners/normal people (unlike Racket) one single and simple build system that just works and everyone in the community uses (unlike Clojure, Haskell, and OCaml).

That said, for learning FP concepts, Elixir is probably more of a starting point.
(At least if my guess is correct and you’re aiming for Monads/Type Classes, etc. here.)

For the ‘hard’ FP concepts, I’d go for Haskell, I think. (Learn You A Haskell is quite nice)

And just one small tangential thing: You don’t necessarily need a ‘functional programming language’ for functional programming—you know that, right? (Most of the modern language support writing code in a functional style.)

In case you don’t, and you’re interested in what I mean, take a look at Grokking Simplicity

Notes

Links