So I want to first execute a bunch of code, and then ask the user if he wants to do that again. I thought the most convenient way to do this would be a do-while loo
Here is a slightly changed version of Clojure's while macro, where the test is done after evaluating the body:
(defmacro do-while [test & body] `(loop [] ~@body (when ~test (recur))))