Я думал, что use
сделает это, но похоже, что отображение, созданное в текущем пространстве имен, не является общедоступным. Вот пример того, что я хотел бы достичь:
(ns my-ns
(:use [another-ns :only (another-fct)]))
(defn my-fct
[]
(another-fct 123)) ; this works fine
Тогда у меня есть другое пространство имен, подобное этому:
(ns my-ns-2
(:require [my-ns :as my]))
(defn my-fct-2
[]
(my/another-fct 456)) ; this doesn't work
Я хотел бы сделать это, потому что another-ns
- это библиотека для доступа к базе данных. Я хотел бы выделить все вызовы в эту библиотеку в одном пространстве имен (my-ns
), таким образом все зависимые от БД функции будут изолированы в одном пространстве имен, и при необходимости будет проще переключиться на другой БД.
Некоторые из функций этой библиотеки прекрасно подходят для меня, но я хотел бы увеличить других. Пусть говорят, что функции чтения прекрасны, но я хотел бы увеличить функции записи с некоторой проверкой.
Единственный способ, который я вижу до сих пор, - вручную переписать все сопоставление в my-ns
даже для функций, которые я не увеличиваю.