Hands-On Functional Programming in Rust