I got interested in FP in 2004 when I realized that Intel's Netburst architecture wasn't frequency scaling as hard as expected and thus we'd inevitably have multiple execution threads as Moore's Law marched onward.
That led me to a bunch of unfocused part time wandering through OCaml, Scheme, and Common Lisp. I then got into Clojure and wrote that professionally for a few years but I've mostly been paid to write JS. I personally like functional leaning JS but I've settled on signals/dataflow programming as enough of a reduction in state to be useful while still being generally acceptable to most teams.
Rust is not a FP language. It's an imperative language with restricted state and a few FP constructs included.
To me what makes a language FP is the mindset and that boils down to deciding to fold
instead of loop and you lean to closure captures instead of declaring variables. Both sides of these are basically equivalent but having a function as the big hammer you use to nail everything together is what makes it functional programming instead of X programming with some functional ideas carried over.
When people structure a request like this they're generally after a way to really get into the ideas and the best way to do that is to use a language that's built around FP ideas. I personally recommend Clojure and OCaml. If you'd like to do Scheme via the Wizard book then that's fine as well. I don't really like the pure functional languages (Haskell and friends) because I think that state is a useful thing in small doses and don't like jumping through the extra hoops to get at it.