Functional Programming Techniques - Assignment