the solution to the assignments of Functional Programming Principles in Scala  on Coursera