As a counterpoint, Clojure is considerably more permissive because it is dynamically typed:
CLJS has some warts due to the compiled JS being hard to understand (use source-maps) and the Clojure error messages being bad is now a meme but if you've not dealt with a Hindley Milner type system before, Clojure can help you learn some of the other basic FP concepts in a more gentle way.
I think it comes down to what you want to learn from FP and where you're coming from:
If you want to just "build stuff" and make it "more functional" ie using lots of data/values and passing around functions maybe go with Clojure.
If you're interested in how static types can make things easier to build more robust things but you only want to dip your toes into FP go with OCaml/Reason
If you want to see what it means to program 100% pure and have no side-effects (and you're willing to invest in learning and delaying instantly "shipping" something) go with Haskell/Purescript