0
*ns*
は、名前空間宣言ではなく名前空間を返します。 clojure.tools.namespace.parse.deps-from-ns-decl
には宣言が必要です。ファイルから宣言を読み込むには多くの方法があります。現在の名前空間(*ns*
)から宣言を取得するにはどうすればよいですか。このことができます場合は、ここでREPLを起動咳ものです:現在の名前空間の依存関係
(deps-from-ns-decl *ns*)
IllegalArgumentException Don't know how to create ISeq from: clojure.lang.Namespace clojure.lang.RT.seqFrom (RT.java:542)
できない場合があります。 'ns'は構文に似ていますが、実際は' require'のようなものをカバーの下に呼び出すマクロです。必要なものに応じて、 'ns-map'と' ns-aliases'関数からいくつかの関連情報を入手できます。 –
ありがとうございます。おそらく、現在の名前空間のソースファイルを見つける方法がありますか? – Chip
私はあなたがネームスペース自体からすることはできないと思います。本当にとてもダイナミックなものです。しかし、多くの関数はソースファイルで定義されており、関連するvar(名前空間エントリ)にはメタデータがあります。だから、 '( - >>(vals(ns-publics * ns *))(map(comp:file meta))のようなことをすることができる。 –