2011-12-30 111 views
7

所以我想先執行一堆代碼,然後然後詢問用戶是否他想再做一次。我想到的最便捷的方式做這將是一個do-while循環類似於C++,因爲我似乎無法找到Clojure中的任何DO-同時功能,我寫了下面:Clojure中的Do-while循環?

(defmacro do-while 
    "Executes body before testing for truth expression" 
    [test & body] 
    `(do (do [email protected]) (while ~test [email protected]))) 

會有沒有更好的(比如更習慣性的Clojure-ish)寫這個宏的方式,或者更好的方式做我想做的事,而不需要通過do-while路徑?

回答