This training is not just designed to teach the C++ programming language itself. It is also about functional programming and how it fits in with C++. Functional programming provides a different way to think about software design and a different way of programming, compared to the imperative, objectoriented styles commonly used with C++. The training is split into two parts. The first part covers functional programming idioms, and how they can be applied to C++. The second part of the training deals with more advanced concepts, mostly pertaining to functional software design.
Topics
- 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