It’s a well known fact in C++ metaprogramming circles that it’s all based on functional programming. What else is based on functional programming? Haskell! I will go through functional features of Haskell, one by one, and show you how they are implemented using C++ templates. Functions, recursion, pattern matching, higher-order functions, list processing, list comprehension and more… No previous contact with Haskell is required, although some familiarity with C++ templates will be assumed. I’ll also talk about C++0x variadic templates and template parameter packs.
Bartosz Milewski has a Ph.D. in Theoretical Physics. He published several papers on Quantum Gravity and String Theory before he switched to programming and Computer Science. He was project lead for the Microsoft search engine before the Internet explosion. He published a book, C++ In Action. Bartosz keeps up with the latest developments in CS by attending graduate courses and seminars at the UW. He actively works on the design of the D language. He regularly blogs about programming languages and concurrency at http://BartoszMilewski.wordpress.com.