Função pura vs impura
Funções puras são essenciais para código previsível, especialmente em gerenciamento de estado ou testes. Em projetos reais, funções que modificam estado externo introduzem bugs difíceis de rastrear — por isso bibliotecas como Redux exigem pureza. Dominar funções puras ajuda a escrever código mais fácil de entender e depurar.
O PROBLEMA
Demonstre a diferença entre função pura e impura. Refatore uma impura em pura.
EXEMPLO
// Impura
function addItem(arr, item) { arr.push(item); }
// Pura
const addItem = (arr, item) => [...arr, item]SOBRE O CONCEITO
Uma função pura retorna sempre o mesmo resultado para os mesmos argumentos e não causa efeitos colaterais. A função impura addItem faz arr.push(item), que modifica o array original — isso é um efeito colateral. A versão pura retorna um novo array com [...arr, item], mantendo o original intacto. Erros comuns incluem alterar parâmetros diretamente (como arr[index] = valor) ou depender de variáveis globais. O uso de spread e return é permitido; loops e class não são necessários.
RESOLUÇÃO