Exercises from Functional Programming for Object-Oriented Programmers