Even though Rust is superficially quite similar to C, it is heavily influenced by the ML family of languages. (This family includes languages like OCaml and F#.) For example, Rust traits are basically Haskell’s typeclasses, and Rust has very powerful pattern matching capabilities.Rust does feature more mutability than functional programmers would usually be accustomed to. We can think of it like this: both Rust and FP try to avoid shared mutable state. While FP is focused on avoiding mutable state in general, Rust tries to avoid the shared part of the danger. Rust is also missing a lot of stuff that would make functional programming doable in it, such as tail call optimization and good support for functional data structures.All in all, there is enough support for functional programming in Rust for somebody to have written a book about it.