Je voudrais avoir une macro que j'appellerai def-foo. Def-foo créera une fonction, puis ajoutera cette fonction à un ensemble.Puis-je créer une macro clojure qui me permettra d'obtenir une liste de toutes les fonctions créées par la macro?
Je pourrais appeler
(def-foo bar ...)
(def-foo baz ...)
Et puis il y aurait un certain ensemble, par exemple tout-foos, que je pourrais appeler:
all-foos
=> #{bar, baz}
Essentiellement, j'essaie juste d'éviter de me répéter. Je pourrais bien sûr définir les fonctions de la manière normale, (defn bar ...) puis écrire l'ensemble manuellement.
Une meilleure alternative, et plus simple que l'idée macro, serait de le faire:
(def foos #{(defn bar ...) (defn baz ...)})
Mais je suis toujours curieux de savoir s'il y a un bon moyen pour l'idée de travailler macro.