Introduction to Functional Programming

The magical approach!