Sobes.tech
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.