Ich hätte gerne ein Makro, das ich def-foo nennen werde. Def-foo erstellt eine Funktion und fügt diese Funktion zu einem Set hinzu.Kann ich ein Clojure-Makro erstellen, mit dem ich eine Liste aller vom Makro erstellten Funktionen abrufen kann?
So kann ich rufen
(def-foo bar ...)
(def-foo baz ...)
Und dann gäbe es einigen Satz sein, z.B. All-Foos, die ich nennen könnte:
all-foos
=> #{bar, baz}
Im Grunde versuche ich nur zu vermeiden, mich zu wiederholen. Ich könnte natürlich die Funktionen auf normale Weise definieren (defn bar ...) und dann das Set manuell schreiben.
(def foos #{(defn bar ...) (defn baz ...)})
Aber ich bin immer noch neugierig, ob ein guter Weg für die Makro-Idee gibt es zu arbeiten:
Eine bessere Alternative, und einfacher als die Makro Idee, zu tun wäre.