defonce
приблизит вас, хотя он все равно будет определен снова, если пространство имен: reloaded, потому что (use 'my.namespace :reload)
сначала выбрасывает старую корневую привязку.
Defonce - это макрос, который проверяет, имеет ли var уже корневую привязку в данном пространстве имен, а затем определяет его, только если его нет. Вы можете использовать это, чтобы решить вашу проблему, поместив этот специальный def в свое собственное пространство имен с (in-ns ... )
, чтобы защитить его от стирания при перезагрузке. тогда вы можете перезагрузить «основное» пространство имен так часто, как вы хотите, и код должен быть определен только один раз.