Mi piacerebbe avere una macro che chiamerò def-foo. Def-foo creerà una funzione e quindi aggiungerà questa funzione a un set.Posso creare una macro clojure che mi consenta di ottenere un elenco di tutte le funzioni create dalla macro?
Così ho potuto chiamare
(def-foo bar ...)
(def-foo baz ...)
E poi ci sarebbe qualche insieme, per esempio all-foos, che potrei chiamare:
all-foos
=> #{bar, baz}
In sostanza, sto solo cercando di evitare di ripetermi. Naturalmente potrei definire le funzioni nel modo normale, (defn bar ...) e quindi scrivere manualmente il set.
Un'alternativa migliore, e più semplice l'idea macro, sarebbe quella di fare:
(def foos #{(defn bar ...) (defn baz ...)})
ma io sono ancora curioso di vedere se v'è un buon modo per l'idea macro di lavorare.