Escolar Documentos
Profissional Documentos
Cultura Documentos
Mas confesso que tem muita informação nesse parágrafo não é, então vamos começar do
começo.
A inspiração do paradigma funcional veio dos matemáticos teóricos que lidam com grandes
abstrações:
Eles costumam trabalhar com sistemas complexos e a maneira como eles encontraram para se
manterem organizados e chegar no objetivo final foi através das funções. Se trouxermos para
nosso mundo de desenvolvimento, existe uma certa analogias de que trabalhamos com
sistemas complexos e com abstrações.
Então o paradigma funcional foi inspirado nesse modelo de trabalho onde as funções são
utilizadas para lidar com abstrações e aplicou no desenvolvimento de sistemas.
Composição de função
Composição de funções é criar uma nova função através da composição de outras. Por
exemplo, vamos criar uma função que vai filtrar um array, filtrando somente os números pares
e multiplicando por dois:
// [ 4, 8, 12, 16, 20 ]
Funções Puras
Uma função é chamada pura quando invocada mais de uma vez produz exatamente o
mesmo resultado. Isto é, o retorno da função é sempre o mesmo se você passar os mesmos
parâmetros, então ela não pode depender de valores mutáveis. Por outro lado, ela não pode
causa efeitos colaterais externos, pois se ela imprime uma linha de saída, altera algo no banco,
lança um foguete para o espaço, ao invocá-la a segunda vez ela vai causar um novo efeito.
Se imprimirmos:
Imutabilidade
Imutabilidade significa que uma vez que uma variável que recebeu um valor, vai possuir esse
valor para sempre, ou quando criamos um objeto ele não pode ser modificado.
sobreNome //'Silveira'
Efeito Colateral
Efeito colateral é toda interação da nossa função com o mundo externo No nosso dia a dia
fazemos coisas como:
Mas dissemos antes que funções puras não possuem efeito coleateral certo ? Mas
programamos para um mundo onde dados mudam constantemente.
Então a programação funcional não elimina efeitos colaterais totalmente, mas tentam confiná-
los. Como fazemos interface com o mundo real, algumas partes do programa vão ser impuras
então o papel é minimizar essas partes e separá-las do resto do programa.
Imperativo x Declarativo
Estado Compartilhado
Estado compartilhado é qualquer valor que está acessível por mais de um ponto de uma
aplicação. Por exemplo:
const idade = 31
Neste caso a função calculaIdadeDosIrmaos() utiliza uma variável externa que está fora do seu
escopo e não depende apenas dos argumentos passados.
Referências
https://www.alura.com.br/artigos/programacao-funcional-o-que-e