Final of Functional Programming Principles in Scala.