В lein repl, когда я делаю
(in-ns 'some-namespace-other-than-name.core)
clojure.core не включается по умолчанию.
Для объяснения, сначала я обнаружил, что меня ловят вот так
db.core=> (in-ns 'db.seed)
#object[clojure.lang.Namespace 0x12738ef5 "db.seed"]
db.seed=> (use 'environ.core)
Syntax error compiling at (form-init7774277424301430706.clj:1:1).
Unable to resolve symbol: use in this context
Я только что нашел, как это исправить:
db.seed=> (clojure.core/use 'clojure.core)
nil
db.seed=> (use 'environ.core)
nil
Мой вопрос, похоже, что clojure.core автоматически включается в пространство имен myapp.core, но не в другие пространства имен я мог бы переключиться на в ответе. (тем не менее, очевидно, что эти пространства имен do имеют доступ к clojure.core при запуске программы из основного пространства имен).
Это просто значение по умолчанию для leiningen?
Интересно, какие части понимания или использования я здесь упускаю.
Если мы запускаем программу, только myapp.core необходим доступ к clojure.core, а пространства имен - ваш .core будет ли самому использовать доступ к clojure.core, так как он сам при импорте просто импортирует в .core вашего приложения? Следовательно, переключение на какое-то другое пространство имен для запуска вещей по своей сути немного искусственно?
Я просмотрел документы для : main key в project.clj , но не смог найти ответ.