Funções puras são essenciais para uma variedade de propósitos, incluindo programação funcional. Mas o que significa função pura? o que as caracterizam? Quais são suas vantagens?
Vamos começar a entender =)
Uma função pura possui 3 características:
1 – Dada a mesma entrada, sempre retornará a mesma saída.
2 – Não produz nenhum tipo de Efeitos Colaterais (side-effects) o que você rodar nela vai ser contido dentro dela não vai alterar o estado de nenhuma outra parte do código.
3 – A função não depende de nenhuma variável que esta fora do contexto dela.
“Lembre-se, a única coisa que ela conhece é o que você passar pelos argumentos!”
Exemplo Função Impura
O exemplo abaixo é uma função impura, o valor de seu retorno não depende apenas de seus argumentos. Repare que a variável counter está sendo definida no estado global da aplicação e não sendo passada nos argumentos, desta forma esta função pode gerar efeitos colaterais (side-effects).
let counter = 0;
let increment = function() {
counter = counter + 1;
return counter;
};
Exemplo Função Pura
O exemplo abaixo é uma função pura, o valor de retorno de funções puras depende apenas de seus argumentos, desta forma elas não têm efeitos colaterais (side-effects).
let increment = function(counter) {
return counter + 1;
};
E por que utilizar funções puras?
O seu programa ficará mais legível gerando menos bugs, elas são de fácil processamento, testes e depuração, por não dependerem de estados mutáveis e são mais fáceis de testar porque não há dependências, há a certeza que ela irá se comportar sempre da maneira esperada, independente das demais partes e estado do programa.
Funções puras têm muitas propriedades benéficas, e formam a base da programação funcional.
COMPARTILHE: