Clojure 学习笔记之when-not

goodluckforlove 2010-07-25

在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))
 

第一篇小文章很短,写的不好,见笑!

相关推荐