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.)