Programação Funcional em C++: Uma Abordagem Moderna
Programação Funcional em C++: Uma Abordagem Moderna
Resumo:
O livro «Programação Funcional em C++» é um guia prático para desenvolvedores que desejam ir além da abordagem imperativa tradicional e dominar os paradigmas funcionais no contexto do C++ moderno (padrões C++17/20). O autor mostra como usar o poder da linguagem — desde expressões lambda e templates até contêineres STL — para criar código mais previsível, testável e conciso.
Sobre o que é este livro
- Fundamentos de PF em C++: funções puras, imutabilidade de dados, ausência de efeitos colaterais. Como esses princípios melhoram a legibilidade e a depuração.
- Expressões lambda e closures: de funções anônimas simples a closures complexas com captura de variáveis. Exemplos para algoritmos STL.
- Composição de funções e currying: criação de cadeias de chamadas usando
std::functione combinadores personalizados. Implementação de pipelines de processamento de dados. - Mônadas e functores em C++: padrões
Maybe,EithereStatecom templates. Tratamento de erros sem exceções. - Computação lazy e sequências infinitas: geração de intervalos, memoização, carregamento tardio com
std::generator(C++23) e iteradores próprios. - Paralelismo e abordagem funcional: uso de
std::async,std::futuree pipelines funcionais para multithreading seguro.
Para quem é este livro
- Desenvolvedores C++ experientes que desejam escrever código mais limpo e modular.
- Programadores familiarizados com linguagens funcionais (Haskell, Scala), mas que trabalham com C++.
- Estudantes e engenheiros que estudam paradigmas modernos de programação.
O que você aprenderá
- Como substituir loops e mutações por transformações de dados usando
std::transform,std::accumulatee algoritmos personalizados. - Como projetar APIs usando composição em vez de herança.
- Como testar funções isoladamente, sem depender de estado global.
- Como implementar os padrões «Strategy» e «Command» usando objetos funcionais.
O livro contém muitos exemplos de código, exercícios e problemas práticos. Você aprenderá a combinar técnicas funcionais e imperativas, escolhendo a abordagem ideal para cada tarefa. Após a leitura, você será capaz de escrever código C++ que é mais fácil de manter, estender e depurar.
A edição é adequada tanto para estudo autodidata quanto para uso como referência sobre técnicas funcionais em C++.