Uma das principais inovações no PF que resultou na "explosão" de interesse são as mônadas.
Em janeiro de 1992, Philip Wadler escreveu um artigo chamado The Essence of Functional Programming, que introduziu 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 era útil ao lidar com E / S. É um dos membros do "Esquadrão Embaraçoso" na programação, porque "do ponto de vista prático," preguiça e efeitos colaterais são incompatíveis. Se você deseja usar uma linguagem preguiçosa, é praticamente uma linguagem puramente funcional; se você quiser usar efeitos colaterais, é melhor usar uma linguagem estrita ". Referência
O problema com o 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 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 -> (a, Mundo).
Portanto, o FP entrou cada vez mais no mainstream, porque o maior problema, IO (e outros) foi resolvido. A integração com os idiomas OO existentes também está acontecendo, como você sabe. LINQ é mônadas, por exemplo, através e através.
Para obter mais informações, recomendo a leitura sobre mônadas e os documentos mencionados na minha resposta.