我正在尝试从另一个 .clj 文件中加载和/或编译 .clj 文件。我这样做是因为我试图加载的文件只包含一堆地图,我打算最终用一个 xml 文件替换它们。我可以只是:use
该文件,它会工作,但我正在尝试通过加载外部数据束的练习。
通过对 repl 的一些随机黑客攻击(通过 emacs 等),我能够以(load "default_libs")
某种(compile...)
方式(使用命名空间限定符、'
和的不同组合"
)并获得对地图的访问权限,但是在重新启动 repl 后它没有任何工作更多,无论如何我不得不使用完整的命名空间名称来获取数据。
这是 lib_manager.clj:
(ns mycad.lib-manager
(:use [clojure repl]
[mycad utils]))
(compile 'mycad.default-libs)
(println mycad.default-libs/default-symbols)
这是我要加载的文件,default_libs.clj
. 这里的数据最终会是一些 xml 文件,但我还是很陌生,所以现在我只是直接写了一堆 clojure 映射。
(ns mycad.default-libs)
(def default-symbols {.... })
所以问题是我怎样才能从一个文件中加载一堆数据.clj
而不真正将其加载到命名空间中,(ns...)
而是使用load
or将其视为数据源compile
?
谢谢你的帮助