My solutions to assignments of Functional Programming Principles in Scala