Cannot talk about functional alternatives without mentioning Haskell. OCaml (when abstaining from the "O", as many OCaml'ers do; similarly Scala'ers often abstain from the "O" in Scala) is also an interesting option.
Finally there's Rust, which is besides being a bit more functional also more low-level than Go.
While being fairly young, Frege[1] also deserves a mention. Very similar to Haskell, but on the JVM.