В Clojure и clojurescript у вас может быть личная версия defn, называемая defn-, но как вы делаете то же самое для def, поскольку def, похоже, не включается?
Частный def в clojure/clojurescript
Ответ 1
Вы должны добавить пара значений ключа :private true
метаданных.
(def ^{:private true} some-var :value)
;; or
(def ^:private some-var :value)
Вторая форма просто короткая для первой.
Ответ 2
Если вы хотите определить, вот как его реализовать
(defmacro def- [item value]
`(def ^{:private true} ~item ~value)
)
Ответ 3
Стоит отметить, что в настоящее время в ClojureScript не может быть приватное def
(и defn
): https://clojurescript.org/about/differences (под "специальными формами" )
Компиляция не завершится неудачно, но def
останется доступным.
Ответ 4
В этой группе google post есть обсуждение этой темы. По-видимому, запрос был рассмотрен. Согласно одному из ответов, defn-
считалось, что это не хорошая идея, и решил не увековечивать его с помощью def
и других.