
E aí, pessoal! Tudo certo?
Hoje vou começar a falar um pouco sobre programação funcional utilizando JavaScript↳JavaScript116 conteúdosJavaScript em 2020: O que esperarDev (Back & Front) · jan 2020Campos públicos e privados em classes JavaScript – O que vem por aí no ESNextDev (Back & Front) · abr 201929 anos de JavaScript!Dev (Back & Front) · jan 2025Ver tudo em Dev (Back & Front) →, bem como as características desse paradigma e vou entrar na primeira parte desta série, que trará os conceitos e as definições das funções puras.
O que é programação funcional?
Nada mais é do que um paradigma onde os programas são executados por meio de avaliação de funções. No sentindo mais puro, é baseada em como funções, variáveis e valores trabalham de fato na matemática.
Além disso, usam uma abordagem mais declarativa do que imperativa em suas estruturas. Sendo assim, temos princípios fundamentais da programação funcional, sendo eles: funções puras, imutabilidade, recursão, composição de função, funções de primeira classe, lambdas e closures.
Neste primeiro artigo, falarei exclusivamente sobre funções puras.
Funções puras
Para uma função ser considerada pura, ela necessariamente tem que ter duas características:
- 1 – Dada a mesma entrada, sempre retornará a mesma saída: a função sempre dá o mesmo valor de retorno para os mesmos argumentos. Isso significa que a função não pode depender de nenhum estado mutável (objetos mutáveis são objetos cujo estado pode mudar, instanciar e atribuir valor a uma variável).
- 2 – Não causa efeito colateral: a função não pode causar efeitos colaterais. Ou seja, a função não acessa ou altera valores globais. Os efeitos secundários podem incluir Entrada/Saída (console.log, Math.random,Date.now).
Exemplo de função pura:
const multiplica = (a, b) => a * b;Quais as vantagens de se utilizar uma função pura?
- Elas são de fácil processamento, teste e depuração, por não dependerem de estados mutáveis.
- O valor de retorno pode ser guardado, evitando assim uma re-computação no futuro.
- São mais fáceis de testar porque não há dependências (como log, ajax, banco de dados↳Banco de dados134 conteúdosSQL ou NoSQL: eis a questão!!Data · mar 2020Banco de dados: como organizar e dar segurança para milhões de dados de loteriasData · mai 20215 serviços gratuitos na cloud para bancos de dados PostgresData · fev 2025Ver tudo em Data →, etc) que precisam ser mockadas.
Como podemos ver, nem todas as funções de nossos sistemas serão puras, mas podemos tentar utilizar as funções puras em pelo menos 80% dos casos, sendo o valor restante destinado a funções de gravação de log, recuperação de data, valores randômicos e etc.







