首先,我想执行一堆代码,然后询问用户是否要再次执行。我认为最方便的方法是像在C ++中使用do-while循环一样,由于我似乎找不到Clojure中的do-while函数,因此编写了以下代码:
(defmacro do-while
"Executes body before testing for truth expression"
[test & body]
`(do (do ~@body) (while ~test ~@body)))
有没有更好的方式编写这个宏,或者可能有更好的方法来实现我的需求而不必使用do-while循环?(指与Clojure语言更符合习惯的方式)