Clojure имеет большое количество функций/макросов для работы с пространствами имен и импорта пакетов java. Для моего (ограниченного) понимания установка пространств имен может считаться состоянием в процессе clojure (repl).Управление пространством имен Clojure. Есть ли способ сохранить и восстановить состояние пространств имен имен clojure, импорт и т. Д.?
При работе итеративно на сеансе REPL, особенно когда исходные файлы (перезагружены), я могу легко смутить - часто, когда я делаю ошибку или синтаксическую ошибку в конфигурации пространства имен. В других случаях я хочу попробовать рефакторинг пространств имен/псевдонимов/ссылок, но не может легко вернуться из существующего состояния пространства имен без перезапуска REPL.
Например, я хотел бы иметь возможность конфигурировать пространство имен контрольных точек - например, после того, как основной кусок кода загружается в реплику, а затем вернитесь к этому «чистому сланцу» после проверки какой-либо библиотеки, импортированной в REPL так что я могу сразу проверить исходный файл, который импортирует отфильтрованное подмножество методов в этой библиотеке как часть макроса ns.
Могут ли люди рекомендовать способы сохранения и восстановления конфигурации пространства имен?
Это звучит как функция _save-world_, которую несут многие реализации Common Lisp. – Greg
Это должно быть возможно, используя (clojure.lang.Namespace/all) и .getMappings, но я не могу найти никаких указаний на то, что кто-то это сделал. – dreish