Please follow the notations described in section 2.5: for each
function please write a contract, a purpose, examples, and tests (use
check-expect or check-within).
You should have at least one test for every case of a condition.
Exercise 4.4.2.
Exercise 4.4.4.
Exercise 5.1.4 (do 4.4.4 first).