Итак, я хочу сначала выполнить кучу кода, а , а затем спросить пользователя, хочет ли он сделать это снова.Я думал, что наиболее удобный способ сделать это - цикл 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?