Clojure ma dużą liczbę funkcji/makr do pracy z przestrzeniami nazw i importowaniem pakietów java. Zgodnie z moim (ograniczonym) zrozumieniem, ustawienie przestrzeni nazw można uznać za stan w procesie clojure (repl).Zarządzanie obszarem nazw Clojure - czy istnieje sposób na zapisanie i przywrócenie stanu przestrzeni nazw replikacji, importu itd.?
Podczas pracy iteracyjnie w sesji REPL, szczególnie gdy pliki źródłowe są (ponownie) ładowane, mogę łatwo wpadać w zakłopotanie - często gdy popełniam błąd lub błąd składni w konfiguracji przestrzeni nazw. Innym razem chcę wypróbować refaktoryzujące przestrzenie nazw/aliasy/filtry referencyjne, ale nie mogę łatwo wyjść z istniejącego stanu przestrzeni nazw bez restartowania REPL.
Na przykład chciałbym mieć możliwość konfiguracji przestrzeni nazw punktów kontrolnych - na przykład po załadowaniu głównej części kodu do repa - a następnie wrócić do tego "czystego arkusza" po przetestowaniu biblioteki zaimportowanej w REPL tak, że mogę natychmiast przetestować plik źródłowy, który importuje przefiltrowany podzestaw metod w tej bibliotece jako część makra ns.
Czy użytkownicy mogą polecać sposoby zapisywania i przywracania konfiguracji przestrzeni nazw?
To brzmi jak funkcja _save-world_, którą nosi wiele implementacji Common Lisp. – Greg
To powinno być możliwe, używając (clojure.lang.Namespace/all) i .getMappings, ale nie mogę znaleźć żadnego wskazania, że ktoś to zrobił. – dreish