Sobes.tech
Junior — Middle

Pode explicar os fundamentos dos princípios e abordagens da programação funcional?

sobes.tech IA

Resposta da IA

A programação funcional (PF) é um paradigma de programação baseado no uso de funções como blocos de construção principais e na evitação de alterar o estado e efeitos colaterais.

Princípios e abordagens principais da PF:

  • Funções puras: uma função sempre retorna o mesmo resultado para os mesmos dados de entrada e não altera o estado externo.
  • Imutabilidade: os dados não mudam após serem criados, em vez disso, novas cópias são criadas com alterações.
  • Funções de ordem superior: funções que aceitam outras funções como argumentos ou as retornam.
  • Recursão em vez de loops: a recursão é frequentemente usada para repetir operações.
  • Ausência de efeitos colaterais: funções não devem modificar variáveis externas, arquivos, bancos de dados, etc.

Exemplo em C++ (usando funções lambda):

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    
    // Função de ordem superior: passar uma função lambda para std::for_each
    std::for_each(numbers.begin(), numbers.end(), [](int n) {
        std::cout << n * 2 << " ";
    });
    
    return 0;
}

Aqui, não modificamos o vetor original, apenas aplicamos uma função a cada elemento para exibir, o que corresponde às ideias da abordagem funcional.