Hands-On Functional Programming with C++