Подтвердить что ты не робот

В clojure, как я могу отменить var из пространства имен?

В clojure у меня есть такие строки, которые определяют значения по умолчанию:

(def *http-port* 8080)

Теперь я решил формализовать эти значения в блок конфигурации, и я хотел бы определить значение *http-port*, чтобы я мог найти местоположения, которые все еще ссылаются на это значение, и изменить их для использования нового значения, Я делаю рефакторинг другими словами, перемещая значение в другое место.

То, как я делаю это, - это выйти из слизи и попытаться перезапустить сеанс слизи. Во время компиляции фазы maven, например, они собираются, и я могу найти и исправить одну ссылку за раз. Затем я исправляю ошибку, промываю промывку и повторяю. Это явно разочаровывает.

Как мне это сделать при подключении к сеансу слизи?

4b9b3361

Ответ 1

Если я правильно вас понимаю, ns-unmap должен делать то, что вы хотите:

user=> foo
java.lang.Exception: Unable to resolve symbol: foo in this context (NO_SOURCE_FILE:1)
user=> (def foo 1)
#'user/foo
user=> foo
1
user=> (ns-unmap (find-ns 'user) 'foo)
nil
user=> foo
java.lang.Exception: Unable to resolve symbol: foo in this context (NO_SOURCE_FILE:1)