Thanks to all who sent me solutions. The fact that they were all identical to my first try at the problem restores my faith in myself and presents me with the nasty task of fixing my scheme interpreter. I wasn't crazy or dense: it was.