You may enjoy this interesting blog post by Bartosz Milewski about understanding C++ template metaprogramming by starting with Haskell.

 

http://bartoszmilewski.wordpress.com/2009/10/21/what-does-haskell-have-to-do-with-c/

 

Bartosz gave the talk at the Northwest C++ users group; the video for the talk will be linked eventually on the NWCPP website: http://nwcpp.org/

 

Simon