Junior
O que é programação funcional?
sobes.tech IA
Resposta da IA
A programação funcional é um paradigma de programação baseado na utilização de funções como blocos de construção principais.
Conceitos-chave:
- Funções puras: funções que, com os mesmos dados de entrada, sempre retornam o mesmo resultado e não têm efeitos colaterais (como modificar variáveis globais, imprimir na consola, etc.).
- Imutabilidade dos dados: os dados não podem ser modificados após a sua criação. Em vez de modificar, cria-se uma nova cópia dos dados.
- Funções de primeira classe: as funções podem ser atribuídas a variáveis, passadas como argumentos a outras funções e devolvidas como resultado de outras funções.
- Funções de ordem superior: funções que aceitam outras funções como argumentos ou devolvem funções.
- Imperativo vs. Declarativo: A programação funcional é mais declarativa, descrevendo o que deve ser feito em vez de como fazer.
Vantagens:
- Melhor testabilidade: Funções puras são fáceis de testar, pois a sua saída depende apenas dos dados de entrada.
- Simplificação do paralelismo: A imutabilidade dos dados elimina problemas de acesso concorrente e condições de corrida.
- Previsibilidade do código: Funções puras tornam o comportamento do programa mais previsível.
- Melhor legibilidade: O código torna-se mais modular e compreensível.
Exemplo de uso em JavaScript:
// Abordagem imperativa
let numbers = [1, 2, 3, 4, 5];
let doubledNumbers = [];
for (let i = 0; i < numbers.length; i++) {
doubledNumbers.push(numbers[i] * 2);
}
// Abordagem funcional (usando funções puras e funções de ordem superior map)
const double = (n) => n * 2; // Função pura
const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map(double); // Uso de map - função de ordem superior
Frequentemente usado em combinação com abordagens reativas e bibliotecas/frameworks como React, Redux e RxJS.