2013-03-25 70 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