Introduction to functional programming
opensource.com