相关疑难解决方法(0)

如何在Clojure中将函数的名称作为字符串?

如何在Clojure中将函数的名称作为字符串?

到目前为止我所看到的并不像惯用语:

(defn fn-name
  [f]
  (first (re-find #"(?<=\$)([^@]+)(?=@)" (str f))))

(defn foo [])

(fn-name foo) ;; returns "foo"
Run Code Online (Sandbox Code Playgroud)

编辑:通过提供的提示,我把一个基本的宏放在一起,做我想要的.它看起来更好吗?

(defmacro fn-name
  [f]
  `(-> ~f var meta :name str))
Run Code Online (Sandbox Code Playgroud)

clojure

12
推荐指数
2
解决办法
5643
查看次数

标签 统计

clojure ×1