I've been reading about Functional Programming in Javascript and some libraries and concepts, but I really want to get deep into it and I think the best way is with a Fully Functional Programming language; maybe not to make myself a [insert_your_language] Programmer but enough to get into the concepts and the Functional Thinking
Haskell, as far as I know, is the only purely functional programming language. If you are serious about getting into functional programming, then its the best place to start.
I voted Clojure, because I chose ClojureScript at last after a lot of considerations. I'm convinced that Haskell is the best language if someone is really trying to learn every concept from FP correctly. But Haskell comes with lots of confusions and costs of time. So I voted Clojure for a sane choice of a normal programmer.
JavaScript is totally an Assembly language before WebAssembly is spread.
I currently learn rust. The reason why I chose is because a college recommended it to me. Also, a big influence on the decision was their good documentation. But I think I also want take a look at go and haskell.
depends how pure you wanna be :)
haskell is the purest of the listed ones.
I personally would pick clojure since they do amazing stuff and it's not bound to a reduced domain like elm.
you could try elixir, erlang, oCaml, LISP and so on.
But Clojure has an active community, rivaling ruby, and that's not that easy because those guys brought a lot of cool stuff into the developer world.
And you have the whole java world to tap into if needed so it's likely a good choice if you don't wanna be a purist.
but that's ofc just my opinion :) since I'm a polyglot and switch paradigms and styles a lot.
stuff ;)
Yury Solovyov
I do stuff on the web
I'd say it depends on what your background is.
If you're coming from strongly typed language, you should be comfortable with Haskell and/or Elm.
If you're coming from more dynamic languages like JavaScript or Ruby, Clojure(Script) might be more familiar.
Though there is a trick - the most familiar option might not be the best answer if you really want to feel paradigm shift, so this depends on your intentions.
I've chosen Clojure because it makes you really think in terms of data, not even about pure functions. It does not mean though it is somewhat less pure than Haskell, you can write as pure as you need. On top of that, it has great concurrency, immutability and metaprogramming (it is LISP after all) support.