Me gustaría tener una macro a la que llamaré def-foo. Def-foo creará una función y luego agregará esta función a un conjunto.¿Puedo hacer una macro de clojure que me permita obtener una lista de todas las funciones creadas por la macro?
Así que podría llamar
(def-foo bar ...)
(def-foo baz ...)
Y entonces no habría algún conjunto, por ejemplo, All-Foos, que podría llamar:
all-foos
=> #{bar, baz}
Esencialmente, estoy tratando de evitar repetirme. Por supuesto, pude definir las funciones de la manera normal (defn bar ...) y luego escribir el conjunto manualmente.
Una alternativa mejor y más simple que la idea macro, habría que hacer:
(def foos #{(defn bar ...) (defn baz ...)})
pero todavía estoy curioso en cuanto a si existe una buena manera para que la idea macro funcione.