Как отфильтровать (ns-map *ns*), чтобы показать только функции, определенные в текущем пространстве имен? Я не хочу видеть все функции импорта, а только те, которые определены в текущем пространстве имен.
(ns-map *ns*)
;; 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))
(ns-interns *ns*) для всего (функции и другие значения)
(ns-interns *ns*)
Показывает только функции:
(filter #(and (bound? %) (fn? @%)) (vals (ns-interns *ns*)))
Я думаю, этот код сработает:
(filter #(= (.name *ns*) (.name (.ns %))) (filter var? (vals (ns-map *ns*))))
Единственный вопрос - совместим ли он с будущими версиями Clojure?