在Clojure中重命名命名空间

时间:2014-02-03 15:55:52

标签: clojure

是否可以重命名已加载的命名空间?

在我的情况下,我有带命名空间的Clojure脚本,比方说main-xxx,以及许多使用main命名空间的其他脚本(无法修改它们,main和{{ 1}}命名空间具有相同的功能,但具有不同的实现。)

我想做的是制作类似main-xxx的内容 - 但为了使其正常工作,我必须在每个脚本中调用(alias 'main 'main-xxx)(无法完成)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

它不会按照你想要的方式工作。您可以在每个命名空间中调用别名(您只需在每个命名空间中调用它),但别名不会影响别名之前定义的函数 - 它们的绑定已经引用了原始命名空间的变量。您需要实际重新定义名称空间的变量,以便更改通过它们调用的函数。