Clojure 学习笔记之when-not
在clojure中有if 但是没有unless,但是有对应的when-not,同样if与when相对。相比于if与unless,when与when-not没有另外的条件不成立时的分支。因为按照英文的习惯没有人会说:when...else...。因此when和when-not后的body就可以包含很多的语句。因为when,与when-not是一个if主导的宏,然后把其后的body用do包装了起来。看看它的源代码(宏实现)就知道了,非常简单:
?
(defmacro when-not [test & body] (list 'if test nil 'do body))?
?
第一篇小文章很短,写的不好,见笑!