Как вы можете получить имя функции как строку в Clojure?
То, что у меня до сих пор не выглядит нигде ближе к идиоматическому:
(defn fn-name
[f]
(first (re-find #"(?<=\$)([^@]+)([email protected])" (str f))))
(defn foo [])
(fn-name foo) ;; returns "foo"
EDIT: С предоставленными подсказками я собрал базовый макрос, который делает то, что я хочу. Это выглядит лучше?
(defmacro fn-name
[f]
`(-> ~f var meta :name str))