Итак, я хочу сначала выполнить кучу кода, а затем затем спросите пользователя, хочет ли он сделать это снова. Я подумал, что наиболее удобным способом сделать это будет цикл do-while, как в C ++, и, поскольку мне не удалось найти никаких функций do-while в Clojure, я написал следующее:
(defmacro do-while
"Executes body before testing for truth expression"
[test & body]
`(do (do ~@body) (while ~test ~@body)))
Было бы лучше (как в более идиоматическом Clojure-ish) способ написания этого макроса или, возможно, лучший способ делать то, что я хочу, без прохождения маршрута do-while?