【发布时间】:2009-11-17 12:03:05
【问题描述】:
我正在尝试获取所有内置 Clojure 函数的元数据。
在previous question 中,我了解到这可以使用^#'func_name 之类的方法来实现(获取var 对象的元数据)。但我没能以编程方式完成,因为事先不知道 func-name。
例如尝试获取clojure.core中最后一个函数的元数据:
user=> (use 'clojure.contrib.ns-utils)
nil
user=> (def last-func (last (vars clojure.core)))
user=> last-func
zipmap
;The real metadata (zipmap is hardcoded)
user=> ^#'zipmap
{:ns #<Namespace clojure.core>, :name zipmap, :file "clojure/core.clj", :line 1661, :arglists ([keys vals]), :doc "Returns a map .."}
;Try to get programmatically, but get shit
user=> ^#'last-func
{:ns #<Namespace user>, :name last-func, :file "NO_SOURCE_PATH", :line 282}
怎么做?我已经尝试了很多变体,但没有任何效果。
【问题讨论】:
标签: clojure