Я пытаюсь получить метаданные всех встроенных функций Clojure.
В предыдущем вопросе Я узнал, что этого можно достичь, используя что-то вроде ^#'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}
Как это можно сделать? Я уже пробовал множество вариаций, но ничего не делает трюк.