- Remember: Save your work in DrScheme as text, and hand it in as text.
This avoids possible problems with the beta versions of DrScheme
that some of you have downloaded.
- Provide test cases for any function that you write.
- Be careful to do all subparts of a problem, unless otherwise
indicated. Exercises end typographically with a dark square in
the printed version and with a "hand" in the online version.
- The following problem numbers refer to the online version.
The numbering of chapter 18 is
different in at least some printed versions.
- Lots of mostly short problems:
18.1.5 parts 1 and 5,
18.1.10,
18.1.15,
18.2.2,
19.1.1,
19.1.6,
19.2.3,
20.1.1,
20.1.2,
20.1.3,
20.2.1,
21.1.2,
21.1.3.
- Note that 18.2.3 has been dropped from the assignment.
- Some clarifications:
On 18.2.2, there is no need for drawing boxes. Add a subscript
to each variable name as done in the lecture (to do this in
text, simply add "_n" to each variable name, where n is a number).
Use the same subscript for variables if they all refer to the
same entity. Use the same subscript both for binding and
use occurrences.
On 20.1.1, the problem is asking which of the three
expressions are values, not which of their subexpressions
are values.
On 20.2.1, simply describe in English an interesting example
of each type.
On 21.1.2, you might find it helpful to do 21.1.3 first.
- Determine the general contract for the following function:
; compose : ?
; Returns the result of composing and applying the given two functions.
(define (compose f g x)
(f (g x)))