當使用repl時,有時你想銷燬一個變量,因爲它以某種方式妨礙了你的編程(通常是命名空間衝突)。在clojure銷燬變量
有沒有辦法在clojure中銷燬一個變量?
user>(def x 1)
#'user/x
user>(aggressive-destroy! x)
nil
user>x
Unable to resolve symbol: x in this context
當使用repl時,有時你想銷燬一個變量,因爲它以某種方式妨礙了你的編程(通常是命名空間衝突)。在clojure銷燬變量
有沒有辦法在clojure中銷燬一個變量?
user>(def x 1)
#'user/x
user>(aggressive-destroy! x)
nil
user>x
Unable to resolve symbol: x in this context
user=> (def my-var "this is my-var!")
#'user/my-var
user=> (println my-var)
this is my-var!
nil
user=> (ns-unmap 'user 'my-var)
nil
user=> (println my-var)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: my-var in this context, compiling:(NO_SOURCE_PATH:13)
user=>
http://stackoverflow.com/questions/5570826/how-can-i-undefine-a-function-in-clojure – wespiserA 2012-01-12 21:22:04