You are required to write signatures and descriptions for all functions, and also descriptions of all your structures. Additionally, functions, except the world problems, must be tested using check-expect. Write your tests before you write a function (but feel free to add more after it's been writen).
The quality of your tests will be graded. Make sure to have enough test cases to demonstrate that the function is correct. I may take points off for a lack of testing (in addition to those taken off for incorrect behavior) if your function doesn't work on particular expected data and there is no test for it. It's much better to leave a test that fails (perhaps in comments) that shows that the function doesn't work on given data and you don't know how to fix it.
Exercises 213, 214, 215
in section
17.1 (function signatures are discussed
in section
17.2). For every abstract function
write check-expect
s that represent the functionality you
were abstracting over, and at least one check-expect
that
demonstrates different functionality.
Exercise 217 in section 17.2. You don't need to write any functions, just the signatures. Ignore the last question in the problem (about instantiation).