O estilo da programação funcional é baseado em funções, no sentido matemático do termo. Ele busca produzir sempre o mesmo resultado para as mesmas entradas, evitando efeitos colaterais.
O código na programação funcional se define pela ausência de efeitos colaterais nas funções puras. Ele não se vale de dados de fora da função atual e nem os modifica.
As abstrações da programação funcional escondem grande número de detalhes de operações de rotina, como iterações. Isso torna o código mais curto, o que resulta em menor número de erros.
Em vez de criar uma descrição única de um objeto com operações na forma de métodos, basta usar um dos poucos primitivos básicos otimizados.
Por causa da flexibilidade da estrutura, o desenvolvedor pode trazer a linguagem mais próxima do problema, em vez de vice-versa.
Trabalhar com linguagens funcionais significa escrever código mais preciso e mais rapidamente, facilitando testes e o debugging.
- Javascript - Haskell - Elixir - Clojure
Uma boa dica é fazer alguns exercícios simples e depois partir para a leitura de livros sobre Haskell, Elixir ou Clojure, conforme for a solução mais adequada para o seu cotidiano de trabalho.