代码之家  ›  专栏  ›  技术社区  ›  chris

Clojure:函数的完全限定名

  •  5
  • chris  · 技术社区  · 14 年前

    在Clojure中,有没有比其他方法更优雅的方法来查找函数的完全限定名(已知有meta-info)呢

    (defn fully-qualified-name [fn]
      (let [fn-meta (meta fn )
            fn-ns (ns-name (:ns fn-meta))
            ]
        (str fn-ns "/" (:name fn-meta))))
    

    4 回复  |  直到 14 年前
        1
  •  11
  •   Stuart Sierra    14 年前

    (resolve 'foo) 返回名为“foo”的变量及其完全限定名。

        2
  •  2
  •   Belun    14 年前

    语法引用怎么样?它做自动鉴定。使用“而不是”

    user=> `(inc)
    (clojure.core/inc)
    user=> `(fn)
    (clojure.core/fn)
    
        3
  •  2
  •   Rachel K. Westmacott    11 年前

    type 提供完全限定的名称,而不考虑元信息。

        4
  •  1
  •   Michael Kohl    14 年前

    .toString的输出可以让您开始:

    user=> (.toString map)
    "clojure.core$map@11af7bb"
    
    推荐文章