Problems about writing procedures in scheme:
(a) writing procedures which are possible directly from memory (i.e.
have been defined in the book or in class, or have been homework.
For example, define
sqrt, factorial, fib, expt, slow-expt-mod, fast-expt-mod, gcd, sum, length,
fixed-point, the functions
about the digits of a number. Note it is not expected that you will
rote memorize these, rather that you will remember the specifications
and the methods enough to be able to recreate procedures to compute them.
(b) writing specified procedures which are only similar to ones
we've done. For example, define a procedure to compute the odd part
of a positive integer. Every integer can be written as a power of 2 times
an odd number. This procedure returns the odd number. For example,
(odd-part 5) --> 5, because 5 = (2^0)*5,
(odd-part 20) --> 5, because 20 = (2^2)*5,
(odd-part 48) --> 3, because 48 = (2^4)*3,
(odd-part 32) --> 1, because 32 = (2^5)*1,