Clojure 如何从lein repl中删除函数?
在lein REPL会话期间,我可以定义许多函数。但是,有时我希望会话“忘记”它们——例如,当我执行(运行所有测试)时,这会突出显示我不再需要的测试的失败。有没有一种方法可以在不重新启动的情况下从会话中删除函数或清除它?使用Clojure命名空间页面上描述的Clojure 如何从lein repl中删除函数?,clojure,leiningen,vimclojure,Clojure,Leiningen,Vimclojure,在lein REPL会话期间,我可以定义许多函数。但是,有时我希望会话“忘记”它们——例如,当我执行(运行所有测试)时,这会突出显示我不再需要的测试的失败。有没有一种方法可以在不重新启动的情况下从会话中删除函数或清除它?使用Clojure命名空间页面上描述的ns unmap 注意:我正在通过vim fireplace插件连接到lein repl,并使用“cpR”命令运行测试。这似乎就完成了。是否有类似于“取消映射”所有函数的函数?您可以使用ns map获得所有函数的列表。然后取消它们的映射。 (
ns unmap
注意:我正在通过vim fireplace插件连接到lein repl,并使用“cpR”命令运行测试。这似乎就完成了。是否有类似于“取消映射”所有函数的函数?您可以使用ns map获得所有函数的列表。然后取消它们的映射。
(defn foo [x] (inc x))
#'user/foo
user> (foo 3)
4
user> (ns-unmap *ns* 'foo)
nil
user> (foo 3)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: foo in this context, compiling:(NO_SOURCE_PATH:1:1)