This document describes an assignment in LISP involving writing various functions. It is broken into 9 parts where students will write functions to: 1) generate cross products of lists, 2) write a version of the LISP every function, 3) check if a list is flat, 4) find the length of the longest flat list in a list, 5) check if a cond expression is legal, 6) rewrite cond expressions as nested if statements, 7) check if rewriting a cond expression matches evaluating it, and 8) rewrite cond expressions using if/else for the last condition being t. Testing code is provided to check the functions and students are given restrictions on allowed LISP functions for each part.