2013-03-25 65 views
4

在lein REPL会议期间,我可以定义一些函数。但是,有时我会希望会话'忘记'它们 - 例如,当我执行(全部运行测试)时,这会突出显示我不再需要的测试失败。有没有办法从会话中删除函数,或清除它,而不重新启动?如何从lein repl中删除函数?

+0

注:我将通过VIM-壁炉插件雷音REPL,运行与“CPR”命令测试。 – 2013-03-25 23:33:26

回答

6

使用ns-unmap作为Clojure的命名空间页描述http://clojure.org/namespacesuser>

(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) 
+0

这似乎是伎俩。是否有类似的功能'取消映射'所有功能? – 2013-03-26 16:44:19

+1

你可以用ns-map得到所有函数的列表。然后取消映射它们。 – 2013-03-26 18:09:11