New York: Manning Publications, 2019. — 321 p.
Functional Programming in C++ helps you unleash the functional side of your brain, as you gain a powerful new perspective on C++ coding. You'll discover dozens of examples, diagrams, and illustrations that break down the functional concepts you can apply in C++, including lazy evaluation, function objects and invokables, algebraic data types, and more. As you read, you'll match FP techniques with practical scenarios where they offer the most benefit.
Functional Programming in C++ teaches developers the practical side of functional programming and the tools that C++ provides to develop software in the functional style. This in-depth guide is full of useful diagrams that help you understand FP concepts and begin to think functionally.
About the TechnologyWell-written code is easier to test and reuse, simpler to parallelize, and less error prone. Mastering the functional style of programming can help you tackle the demands of modern apps and will lead to simpler expression of complex program logic, graceful error handling, and elegant concurrency. C++ supports FP with templates, lambdas, and other core language features, along with many parts of the STL.
What's insideWriting safer code with no performance penalties
Explicitly handling errors through the type system
Extending C++ with new control structures
Composing tasks with DSLs
About the ReaderWritten for developers with two or more years of experience coding in C++.
Introduction to functional programming
Getting started with functional programming
Function objects
Creating new functions from the old ones
Purity: Avoiding mutable state
Lazy evaluation
Ranges
Functional data structures
Algebraic data types and pattern matching
Monads
Template metaprogramming
Functional design for concurrent systems
Testing and debugging