wro*_*ame 7 functional-programming clojure
所以我想首先执行一堆代码,然后询问用户是否要再次执行此操作.我认为最方便的方法是在C++中使用do-while循环,因为我似乎无法在Clojure中找到任何do-while函数,所以我写了以下内容:
(defmacro do-while
"Executes body before testing for truth expression"
[test & body]
`(do (do ~@body) (while ~test ~@body)))
Run Code Online (Sandbox Code Playgroud)
是否有更好的(如在更惯用的Clojure-ish中)编写这个宏的方式,或者可能是一种更好的方式来做我想要的而不经过do-while路线?
Ger*_*ert 16
这是Clojure while
宏的一个稍微改变的版本,在评估主体后进行测试:
(defmacro do-while
[test & body]
`(loop []
~@body
(when ~test
(recur))))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3309 次 |
最近记录: |