Entendendo sobre funções puras

26 janeiro, 2017 |

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?

js_cahfelix

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:

Post A Comment