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

Как я могу определить функцию в Clojure?

Часто мне нужно определить функцию в clojure. Если я определяю что-то с defn, как я могу его определить?

4b9b3361

Ответ 1

Если у вас есть:

(def x 42)

Может быть полезно отвязать var:

(.unbindRoot #'x)

Теперь, если вы попробуете этот

x

Вы получаете:

#<Unbound Unbound: #'user/x>

Ответ 2

Нет версии с одним аргументом, потому что один и тот же Var можно сопоставить в нескольких пространствах имен. Если вы работаете с REPL, вы часто хотите отвязать от пространства имен пользователя, например.

(ns-unmap 'user 'symbol-to-unbind)

Первым аргументом ns-unmap может быть символ или пространство имен, а второй аргумент должен быть символом.

Ответ 3

Я думаю, что для этого можно использовать ns-unmap.

P.S. Не удалось добавить этот код в комментарий, поэтому я поместил его здесь. Чтобы отключить функцию в текущем пространстве имен, вам необходимо использовать следующий код:

(ns-unmap *ns* 'method)