Project step 1 is due at 11:59 PM on Monday, 10 November, 2003.
In this step, we port the ratpair
implementation of
the ratintvl
datatype from the 2002 project to the 2003
project. Your task is to read the Web presentation of the
2002 project and make sure that everything up through the first step will work for
us this year. Notice that code supposedly implementing the first step
is available on the "Selected solutions" page. There may be some plain
old errors to catch. We are also concerned with catching any features
that depend on MIT Scheme and will not run on
MZScheme (the implementation of Scheme used by the
DrScheme programming tools). Besides the implementation code
in my ratintvl-3_ratpair-1,mod1.scm
files we need the
testing utilities in progutils-2.scm
in order to test
things. The most likely problem is the timetest
feature. If we identify such a problem now, I can fix it before we
need to do any time tests.
As you study the old materials, watch out for differences in notation. In particular, last year I used the old traditional notation for list selectors.
car
is the same as our first
cdr
is the same as our rest
c
, end with r
, and have silly looking
sequences of a
s and d
s in between. Each
a
stands for an application of car
, and each
d
stands for an application of cdr
cadr
is second
,
caddr
is third
, etc.Last year, I also used traditional Scheme quoting and list
notation. Standard Scheme has the list
function,
but it is often not used as heavily as the DrScheme material
suggests. For example, '(1 2 3)
is the same as
(list 1 2 3)
. In general, you need the list
function when one or more elements of the list need to be evaluated
(e.g., (list (+ 1 2) 3 4)
), but when all elements of a
list are given literally, you can use the quoted form. I will explain
the traditional notation systematically soon. For now, notice the
difference and see how well you can figure it out.
Try out the old 2002 stuff, post problems, suggest solutions. Aren and Duru and I will collect the issues and organize a better structured presentation of the tools and implementations.
Hand in a single file, named journal.txt
, with a brief
and informal textual description of what you tried and what you
discovered in using the 2002 materials. About one page in list form is
ideal. You may use a nicer format, such as DVI or
PostScript if you like.
![]() | |