Exploration of functional vs imperative programming and  abstract data structures.