Подтвердить что ты не робот

Существует ли соглашение w120 для присвоения имен частным функциям?

Когда я определяю частную функцию в Clojure, я обычно использую префикс - как визуальный индикатор того, что эта функция не может использоваться вне моего пространства имен, например

(defn- -name []
  (let [formatter (formatter "yyyy-MM-dd-HH-mm-ss-SSSS")]
    (format "fixjure-%s" (unparse formatter (now)))))

Но префикс -, по-видимому, также является условным для общедоступных методов при использовании gen-class.

Существует ли общепринятое соглашение для defn- 'd функций в сообществе Clojure или я просто использую имена без префикса?

Кажется, что много кода в clojure.contrib(может ли он покоится в покое) использует обычные имена для частных функций, поэтому, возможно, это лучше всего, но мне очень нравится визуальный индикатор - возможно, мой фон C/Perl слишком силен!;)

4b9b3361

Ответ 1

Там нет конвенции; визуальный индикатор распространен на языках, не имеющих встроенного понятия частных функций. Поскольку функции Clojure, определенные с помощью defn-, не видны за пределами их пространства имен, нет необходимости префиксных функций с помощью uglifier;)

Так делайте то, что вы, но, но вы, вероятно, должны просто сделать так, как это делает остальная часть сообщества, и просто назвать их нормально! Это облегчит вам жизнь.

Ответ 2

Я не знаю никаких соглашений об именах, но вы можете прикрепить тег метаданных ^:private для определения частных функций. Это в точности эквивалентно defn-, но немного яснее, IMHO.

(defn ^:private foo [])