Обычно у меня такая же структура моих функций: перегружен частная функция, которая является частным в Clojure
(defn func-name
([] (some actions))
([ar] (some actions))
([ar aar] (some actions)))
И обычно только один из этого варианта является public
. Но как вы можете видеть из моей записи - все мои функции: public
из-за использования defn
вместо defn-
. Но defn-
скрыть все функция, включая все перегруженные.
Есть ли способ «скрыть» только часть перегруженной функции?
Например, я хочу скрыть имя func с арностью одного и двух аргументов.
Ofcorse я могу скрыть перегружен функцию внутри одного defn
так:
(defn awesome[]
(let [func (fn some-func ([] (some actions))
([ar] (some actions)))]
(func)))
Но я думаю, что это немного грязный, и я уверен, что там должен быть способ решить.
Спасибо!
Это не работает - функция таким образом я назвал штрафом. Может быть, я использовал мета-информацию не в правильном направлении? Посмотрите на мой UPD1. –
Вы меня не поняли :). Я хотел сказать, что вы не можете это сделать. Не добавляя мета к вашим выражениям – fl00r
О, мне интересно, почему, но все равно, спасибо в любом случае. –