Steps in Scala : An Introduction to Object-Functional Programming - Christos K. K. Loverdos; Apostolos Syropoulos (2010)