Functional programming is experiencing a resurgence with languages like Python,
Haskell, and Scala. C++ and Java have also added functional features, such as lambdas
and futures. Writing C++ in a functional style using const variables, functions without side
effects, recursive functions, and function objects results in code that is often simpler and
easier to maintain and understand, especially when poorly documented. This book
explores functional techniques in C++ code and their advantages and disadvantages.