Learning functional programming and scala via Functional Programming in Scala book, contains completed exercises.