Sobes.tech
Middle

O que é programação funcional?

sobes.tech IA

Resposta da IA

A programação funcional é um paradigma de programação em que os cálculos são considerados como a avaliação de funções matemáticas, evitando o estado mutável e os dados modificáveis.

Princípios básicos:

  • Funções puras: Funções que, com os mesmos dados de entrada, sempre retornam o mesmo resultado e não têm efeitos colaterais (por exemplo, modificar variáveis externas, entrada/saída).
  • Imutabilidade: Os dados não mudam após a sua criação. Qualquer "alteração" cria uma nova cópia dos dados.
  • Funções como cidadãos de primeira classe: As funções podem ser passadas como argumentos, retornadas por outras funções e atribuídas a variáveis.
  • Transparência referencial: Uma expressão pode ser substituída pelo seu valor sem alterar o comportamento do programa. Isto está diretamente relacionado com funções puras.

Vantagens:

  • Previsibilidade: Mais fácil de testar e depurar devido à ausência de efeitos colaterais.
  • Paralelismo: Mais fácil de executar código em paralelo, pois não há estado mutável compartilhado.
  • Manutenção: O código torna-se mais modular e compreensível.

Exemplo em JavaScript:

// Função impura (altera o estado externo)
let total = 0;
function addToTotal(value) {
  total += value;
  return total;
}

// Função pura (não altera o estado externo, devolve um novo valor)
function add(a, b) {
  return a + b;
}

// Uso de funções como cidadãos de primeira classe (função como argumento)
function processArray(arr, handler) {
  return arr.map(handler);
}

const numbers = [1, 2, 3];
const doubledNumbers = processArray(numbers, x => x * 2);

Apesar de o JavaScript não ser uma linguagem estritamente funcional, as suas capacidades (como funções puras, métodos de arrays map, filter, reduce) permitem aplicar os princípios da programação funcional. No desenvolvimento frontend, a FP é frequentemente usada em bibliotecas e frameworks (por exemplo, Redux, React com hooks).