如何过滤(ns-map * ns *)以仅显示当前命名空间中定义的函数?

时间:2011-02-24 21:01:50

标签: clojure

如何过滤(ns-map *ns*)以仅显示当前命名空间中定义的函数?我不希望看到所有导入函数,只看到当前命名空间中定义的函数。

3 个答案:

答案 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兼容?