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

#clojure

#clojure

Вопрос:

Я знаю, что могу использовать defonce для обычного определения, но как я могу предотвратить переопределение функции clojure?

Ответ №1:

Вы можете использовать defonce для этого, но вы должны иметь в виду какой-то особый вариант использования — есть причина, по которой в clojure.core нет defn-once

 (defonce fn-sym (fn [ ... ] .... ))
  

Ответ №2:

Я собирался написать, что сказал Джост, но он опередил меня, поэтому я опущу эту часть.

Если вы действительно хотите defn-once , сделайте исходный код source defn и сделайте что-то подобное, но замените 'def где-нибудь ближе к концу на 'defonce .