CM 20256 Functional Programming Assignment
Complete the given assignments in the file Coursework.hs , and sub- mit this on Moodle by Friday 1 May 8pm. Make sure your file does not have syntax errors or type errors; where necessary, comment out partial solutions (and explain what you in- tended). Use the provided function names. You may use auxiliary functions, and you are encouraged to add your own examples and tests.
Assessment and feedback Your work will be judged primarily on the correctness of your solutions. Secondarily, incorrect or partial solutions (also when commented out) may be given partial marks if they are well presented. Marking is part-automated, part-manual. You will receive individual marks, and we will publish an overall feedback document. CM 20256 Functional Programming Assignment
Plagiarism warning The assessed part of this coursework is an individual assignment. Collaboration is not permitted: you should not discuss your work with others, and the work you submit should be your own. Disclosing your solutions to others, and using other people’s solutions in your work, both constitute plagiarism: see http://www.bath.ac.uk/quality/documents/QA53.pdf.
This coursework consists of two parts. In Part A we will implement the lambda-calculus in Haskell, following the definitions of the lectures. This part is not assessed, and the solutions are published in Coursework-Part-A.hs for you to use. In Part B, which is assessed, we will program a more efficient implementation of the lambda-calculus via supercombina- tors—the way that Haskell is implemented at a low level. Since we will build on the code for Part A, you are strongly encouraged to attempt this part yourself, without checking the solutions, so that you are familiar with it. CM 20256 Functional Programming Assignment