如何从lein repl中删除一个函数?

Ric*_*rth 4 clojure leiningen vimclojure

在lein REPL会话期间,我可以定义许多功能.但是,有时我会希望会话"忘记"它们 - 例如,当我执行(run-all-tests)时,这会突出显示我不再需要的测试失败.有没有办法从会话中删除功能,或清除它,而无需重新启动?

Art*_*ldt 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) 
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用 ns-map 获取所有功能的列表。然后取消映射它们。 (2认同)