working on the first example in chapter 9; it needs a clojure port of lisp do macro