Как отфильтровать (ns-map * ns *), чтобы показать только функции, определенные в текущем пространстве имен? - PullRequest
1 голос
/ 25 февраля 2011

Как отфильтровать (ns-map *ns*), чтобы показать только функции, определенные в текущем пространстве имен? Я не хочу видеть все функции импорта, а только те, которые определены в текущем пространстве имен.

Ответы [ 3 ]

3 голосов
/ 25 февраля 2011
;; 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 голос
/ 25 февраля 2011

(ns-interns *ns*) для всего (функции и другие значения)

Показывает только функции:

(filter #(and (bound? %) (fn? @%)) (vals (ns-interns *ns*)))
0 голосов
/ 25 февраля 2011

Я думаю, этот код сработает:

(filter #(= (.name *ns*) (.name (.ns  %))) 
  (filter var? (vals (ns-map *ns*))))

Единственный вопрос - совместим ли он с будущими версиями Clojure?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...