One of the most fascinating talks I saw at BoostCon 2010 was David Sankel, speaking about how to apply the fundamental mathematical ideas of functional programming in C++, using Boost. I asked David if he’d like to post some articles here about it, and I’m very pleased to announce the first one in his series, on algebraic datatypes. Take it away, David!

Great, This is the way to go. Let’s see. All elegant C++ classes are mathematical objects in essence (except for class Employee).