如何过滤(ns-map *ns*)
以仅显示当前命名空间中定义的函数?我不希望看到所有导入函数,只看到当前命名空间中定义的函数。
答案 0 :(得分:3)
;; prints a load of stuff including clojure.core
(ns-map (the-ns 'clojure.set))
;; prints only clojure.set vars
(ns-publics (the-ns 'clojure.set))
答案 1 :(得分:1)
(ns-interns *ns*)
用于所有内容(函数和其他值)
这仅显示功能:
(filter #(and (bound? %) (fn? @%)) (vals (ns-interns *ns*)))
答案 2 :(得分:0)
我认为这段代码可以完成这项工作:
(filter #(= (.name *ns*) (.name (.ns %)))
(filter var? (vals (ns-map *ns*))))
唯一的问题是 - 它是否与未来版本的Clojure兼容?