Выбор функционального языка программирования?
Если под "функциональным" подразумевается функциональная парадигма, то Go тут явно аутсайдер. Советую Haskell для ознакомления с парадигмой фактически в "чистом" виде. После него - Scala и/или Rust, как удачные смешения функциональной парадигмы с другими парадигмами/направлениями. И не забудьте повертеть Erlang.
Если же под "функциональным" подразумевается удобный инструмент с многими возможностями из коробки, то тут однозначно Go, так как и порог вхождения мал, и прививает хорошие практики. После него Scala + FRP + TypesafeStack тоже должны показаться интересными, но там порог вхождения повыше будет.
Смотря для чего.
В образовательных целях - Haskell. Он так же хорошо подходит для некоторых специфических задач (моделирование, компиляторы, преобразование данных).
Для применений в обычной жизни - Scala, Clojure, F#.