This is my opinion (obviously) but if you really want to learn functional programming, learn Haskell. This is probably unpopular advice, but it is the best way to get the "full experience" ... because, you are basically forced to do FP. I used Scala for 3-4 years before learning Haskell, and thought I knew some FP ... no, not really. When you do that, you can come appreciate what Rust has to offer in terms of FP, but it won't always be as obvious (but at least you'll know what to look for). Of course, you'll also notice what Rust doesn't have, or at least, isn't as easy to achieve in terms of FP. That said, some things are going to be a lot easier in Rust than in Haskell.
I realize this isn't entirely practical advice. I've been using Haskell for 2 years part-time and feel like I've just gotten to the point where I'm more productive with it than with anything else. I'm still learning Rust so i can't offer much there, but once you've got the basics under your belt (Rust essentials, including ample use of higher-order functions (HOFs) from iterators such as map
, foreach
, and fold
), fp-core.rs looks to be a good starting point for the FP side of things.