Roundabout, A Pattern Language for Recursive Programming Eugene Wallingford wallingf@cs.uni.edu Department of Computer Science University of Northern Iowa Cedar Falls, Iowa 50614-0507 (319) 273-5919 ABSTRACT Roundabout describes a method for writing recursive programs. Recursion is a powerful technique for writing code that follows the structure of the data it processes. By following the data's structure, recursion directly supports inductive reasoning about the program's behavior and correctness. Perhaps more importantly, it can also lead to code that is easier to write, modify, and read. This language guides the programmer through the development of recursive programs in the face of a number of common forces. SUBJECT AREA: recursion, functional programming, (perhaps elementary programming?) KEYWORDS: recursion, functional programming, novice programming