Functional Programming Principles in Scala (Sep 18th 2012)