Я хотел бы иметь макрос, который я назову def-foo. Def-foo создаст функцию, а затем добавит эту функцию в набор.
Чтобы я мог позвонить
(def-foo bar ...)
(def-foo baz ...)
И тогда будет некоторый набор, например all-foos, который я мог бы назвать:
all-foos
=> #{bar, baz}
По сути, я просто стараюсь не повторяться. Конечно, я мог бы определить функции обычным способом (defn bar ...), а затем написать набор вручную.
Лучшей альтернативой и более простой, чем идея макроса, было бы сделать:
(def foos #{(defn bar ...) (defn baz ...)} )
Но мне все еще любопытно, есть ли хороший способ для реализации идеи макроса.