Rust isn't a functional programming language. You could try OCaml, it's kind of a halfway point between Go and Haskell.
You can't really pass around functions freely like you would in Haskell/ML unless you start Box-ing/Rc-ing everything. But then it's not really idiomatic Rust anymore, IIUC.