The first page of the exam will contain this information:

You have 50 minutes to complete this exam. You do not need to show templates (unless a problem states otherwise), but you may receive partial credit if you do. You also do not need to show test cases or examples of data definitions (unless a problem states otherwise), but you may develop them if they will help you write the programs.

You should provide a signature/purpose for any helper function you define.

Your programs may contain only the following Racket constructs:

define define-struct cond else if local begin error format

and the following primitive operators:

empty? cons? cons first rest list append
     + - * / = < > <= >= 

filter map andmap ormap foldr build-list
string=? string-length string-append

predicates for any defined data types
and or not

set!
and the operators introduced by define-struct (including mutators).

You may, of course, use whatever constants are necessary (empty, true, false, 0, etc.)