Polecę to na czym się znam, czyli Scalę. Wersja 3.0 jest już całkiem przyzwoita, ma porządne IDE (IntelliJ), można budować SBT lub Gradle, działa debugger. Ale najlepszy "selling point" to możliwość użycia prawie każdej Javowej biblioteki. Poza tym biblioteka ZIO jest jedną z najnowszych innowacji jeżeli chodzi o komercjalizację programowania funkcyjnego. Także Scala 3.0 + ZIO.
Wady: przekombinowany kod bibliotek (ale i tak jest o niebo lepiej niż w Haskellu), dramy (select_random(kobiety_w_it, lgbt, code_of_conduct, black_lives_matter)) w społeczności.
Czytelność kodu również pozostawia wiele do życzenia, czasami trzeba się nieźle namęczyć żeby zrozumieć o co autorowi chodziło (niestety jest to wada wszystkich funkcyjnych języków programowania o mocy HKT), przykład: https://github.com/scala/scala/blob/2.13.x/src/library/scala/concurrent/Future.scala#L859
Z innych próbowałem Haskella i niestety muszę przyznać że język super (niektórzy mówią Haskell to język XXII wieku), ale cała otoczka liby, ide są strasznie mizerne.
Na studiach bawiłem się LISPem. W ankiecie mamy niestety tylko Clojure ale brak CommonLisp'a. Generalnie te same problemy co w Haskellu w przypadku CommonLisp'a - ale język warto znać, choćby ze względu na swoistą składnie.
Jakbym był .NET'owcem to bym brał F#. Co prawda brak (jak ostatni raz sprawdzałem) HKT ale dzięki temu mamy łatwiejsze wejście do programowania funkcyjnego.