Chciałbym mieć makro, które nazwałbym def-foo. Def-foo utworzy funkcję, a następnie doda tę funkcję do zestawu.Czy mogę utworzyć makro clojure, które pozwoli mi uzyskać listę wszystkich funkcji utworzonych przez makro?
Więc mogę zadzwonić
(def-foo bar ...)
(def-foo baz ...)
A wtedy nie będzie jakiś zestaw, np all-foos, które mógłbym nazwać:
all-foos
=> #{bar, baz}
Zasadniczo staram się tylko uniknąć powtarzania. Mógłbym oczywiście zdefiniować funkcje w normalny sposób (defn bar ...), a następnie napisać zestaw ręcznie.
Lepszą alternatywą i prostsze niż makro pomysłem byłoby zrobić:
(def foos #{(defn bar ...) (defn baz ...)})
Ale wciąż jestem ciekaw, czy jest to dobry sposób na makro pomysł, aby pracować.