ClojureScript中符号的字符串

时间:2016-05-09 17:57:35

标签: clojurescript

诸如docstring之类的变量的元数据可以这样读取:这里使用函数map作为示例:

(-> cljs.core/map var meta :doc)
;= "Returns a lazy sequence consisting of the result of appl....

当只将函数名称及其名称空间作为字符串("cljs.core/map")时,我需要做些什么来获得相同的结果?

使用函数symbol包装字符串会产生错误。

1 个答案:

答案 0 :(得分:1)

这是一种方法:

* Clojure文件*

(ns myproject.macros
  (:require [clojure.string :as str]))

(defmacro doc1 [s]
  (let [sym (apply symbol (str/split s #"/"))]
      `(-> ~sym (var) (meta) :doc)))

* ClojureScript文件*

(ns myproject.main
  (:require-macros [myproject.macros :as m]))

(prn (m/doc1 "cljs.core/inc"))

=> “返回大于num的数字。”