Uma das principais inovações no FP que resultou na "explosão" de interesse são as mônadas.
Em janeiro de 1992, Philip Wadler escreveu um artigo chamado A Essência da Programação Funcional , que introduziu as mônadas na programação funcional como uma maneira de lidar com IO.
O principal problema com linguagens de programação puras, preguiçosas e funcionais foi a utilidade em lidar com IO. É um dos membros do "Awkward Squad" na programação, porque "preguiça e efeitos colaterais são, do ponto de vista prático, incompatíveis. Se você quiser usar uma linguagem preguiçosa, ela tem que ser uma linguagem puramente funcional; Se você quiser usar efeitos colaterais, é melhor usar uma linguagem restrita ". Referência
O problema com IO antes das mônadas era que manter a pureza não era possível para programas que eram realmente úteis para qualquer coisa. Por IO, queremos dizer qualquer coisa que lide com a mudança de estado, incluindo a entrada e saída do usuário ou do ambiente. Na programação funcional pura, tudo é imutável, para permitir preguiça e pureza (livre de efeitos colaterais).
Como as mônadas resolvem o problema de IO? Bem, sem discutir muito as mônadas, elas basicamente pegam o "Mundo" (o ambiente de tempo de execução) como entrada para a mônada e produzem um novo "Mundo" como saída, e o resultado: digite IO a = Mundo - > (um mundo).
O FP, portanto, entrou cada vez mais no mainstream, porque o maior problema, IO (e outros) foi resolvido. A integração em linguagens OO existentes também está acontecendo, como você sabe. O LINQ é monads, por exemplo, através e através de.
Para mais informações, recomendo ler sobre mônadas e os artigos mencionados em minha resposta.