We have visited a lot of techniques that we can use in functional programming, from the basic building blocks, through the way we can design in a function-centric style, to how we can take advantage of functional programming for various goals. It's time to look at the present and future of functional programming in Standard C++ 17 and 20.
We will first play with the amazing ranges library, available as an external implementation for C++ 17 and as part of the C++ 20 standard. We will see how a simple idea, wrapping existing containers in a lightweight manner, combined with a composition operator and with a new take on the higher-order functions that we've extensively used, allows us to write code that is simpler, faster, and much lighter than the alternatives from Standard C++ 17.
We'll then visit...