Assignment Three
- Assignment three is due Nov 8 at noon with 10% off.
- A reduced assignment three that only deals with the lambda
calculus is due Nov 8 at noon with 20% off.
If you are handing it in late please see the instructions at the
end of this page.
Design and implement a procedure reduce* that takes an unparsed
Purple language expression, exp,
and a positive integer n, and returns the answer for exp
if it can be obtained by n or fewer applicative-order
reductions, and #f otherwise. I expect that reduce*
would look like:
(define reduce*
(lambda (exp n)
(reducehelp (parse exp) n)))
to take advantage of our parser from assignment two.
This is an extended version of exercise 4.3.2 on page 113 in the book.
Turning it in
In addition to submitting your code in the usual
way you will need to submit a written typeset report describing
your design and its justification. This report will be graded on content,
grammar, spelling, ease of understanding, and readability.
Extra credit
Add (if test then else) expressions to Purple and design and
implement reduce* for this language. (This was the original
assignment).
Late handin
I will create a new submission program
(~cs326/bin/sub3late) to use for handing it in. If you would like to
turn in a new report (because, for example, there were design changes)
please also turn it in (SEM233) to me before noon on the 8th.
Make sure that you have all supporting procedures (parse, free?,
...) in the file that you turn in.
Sushil Louis
Last modified: Wed Nov 3 15:37:15 PST 1999