@bschrock: I knew you were doing the Koans.  This is a nearly complete version of the last problem - coded completely functionally (except for the tests).  No mutable variables, etc.

Thought you might be interested.