【发布时间】:2011-02-26 13:23:15
【问题描述】:
我想要一个宏,我称之为 def-foo。 Def-foo 将创建一个函数,然后将这个函数添加到一个集合中。
所以我可以打电话
(def-foo bar ...)
(def-foo baz ...)
然后会有一些设置,例如all-foos,我可以称之为:
all-foos
=> #{bar, baz}
基本上,我只是想避免重复自己。我当然可以用正常的方式定义函数,(defn bar ...),然后手动编写集合。
比宏观想法更好且更简单的方法是:
(def foos #{(defn bar ...) (defn baz ...)} )
但我仍然很好奇宏观想法是否有好的方法。
【问题讨论】: