Programação funcional envolve escrever funções puras sem efeitos colaterais, removendo inputs e outputs ocultos. Isso inclui usar higher-order functions, recursão, functors, composição e currying. Linguagens funcionais como Erlang, Haskell e F# encorajam essa abordagem ao suportar funções puras. Grandes empresas usam programação funcional em suas aplicações.
7. Side-Effects
Podemos ver uma função como essa:
E pensarmos que temos alguma ideia do que ela
faz, mas estaremos errados!
8. Side-Effects
Ao encontrarmos uma função assim temos 3
opções:
Ler e entender tudo que acontece internamente
Trazer toda complexidade pra cima
Ignorar e torcer pro melhor dos cenários
Ignorar geralmente leva a grandes problemas
9. Então Side-Effects são ruins?
Mais difícil de debugar
Mais difícil de testar
Temos que confiar que o estado do sistema vai
continuar igual no longo prazo
10. Como podemos lidar com Side-Effects
A resposta rápida: Funções Puras
Mas o que elas são?
22. Currying
Transformar uma função com múltiplos parâmetros
em uma cadeia de funções que aceitam somente
um parâmetro e retornam outra função.
23. O que é uma linguagem funcional?
Toda linguagem que suporta funções puras é
funcional?
NÃO.
Então o que é uma linguagem funcional?
É aquela que suporta e encoraja a programação
sem Side-Effects.