8 ответов:
на самом деле, есть способ!
(comment(defn hey [] ("Hey there!"))
Check me out! )
просто оберните свои комментарии в (комментарий ..):)
удачи!
Clojure поддерживает a
#_макрос чтения, который полностью пропускает следующую форму. Это упоминается на странице о Clojure Reader. Существует также комментарий макрос, который имеет подобный эффект, но реализуется по-разному.оба вышеизложенных требуют, чтобы вещь, которую вы комментируете, в противном случае является синтаксически правильным s-выражением.
некоторые диалекты Lisp имеют многострочный комментарий, который может содержать произвольный текст, но я не вижу для Clojure.
двойные кавычки (строковый литерал) позволяют добавлять произвольный текст (не только собственные S-формы):
(comment " public class HelloWorld { public static void main(String[] args) { System.out.print("Hello, World"); System.out.println(); } } ")
смотрите по этой ссылке: http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips
вы можете создавать многострочные комментарии с синтаксис
(comment ..... ....)
другие примеры велики, я просто хотел бы добавить еще один трюк:
иногда вы хотите закомментировать несколько строк кода, но все еще есть компилятор скомпилировать его и сообщить о любых ошибках (например, набор команд в пространстве имен верхнего уровня, которые вы планируете выполнить позже в REPL).
в этом случае я хотел бы обернуть код с
(fn [] .....)Что означает, что он все еще компилируется, он просто не вызывается.
в Emacs вы можете использовать команду
M-;(ярлыкM-x comment-dwim). Он будет комментировать или раскомментировать любую отмеченную область текста / кода, поэтому, пока вся ваша функция или набор функций включены в область, вы можете комментировать или раскомментировать эту область довольно легко. Справочное руководство Emacs для функцииM-;можно найти здесь.
есть несколько способов, которые я знаю:
первый использует комментарий макрос: это не только не оценивает весь код внутри тела комментария (но он все еще проверяет сбалансированные скобки/скобки). Если вы знаете свой путь с paredit, это не займет много времени, если вы хотите прокомментировать несколько sexp звонки.
(comment (println 1))тем не менее, он все равно будет проверять соответствие скобок. Поэтому, если у вас есть несбалансированная скобка, вы не будете кодировать компиляции (урожайность
java.lang.RuntimeException: EOF while reading).другой способ-это использование
#_(aka макрос сброса): он отбросит следующий sexp, который я лично предпочитаю (быстрее набирать и обычно я делаю это на sexps, когда мне нужно отлаживать):#_(println 1)он также проверяет наличие несопоставимых разделителей: поэтому, если у вас есть несбалансированная скобка, она также не будет компилироваться.
наконец, есть
;символ, который будет комментировать строку (аналогично другим языкам функция комментариев), и компиляция будет полностью игнорировать его. Если вы хотите прокомментировать несколько строк , вам нужно добавить все строки С;, которые обычно являются хлопотами, но обычно текстовые редакторы сделают это за вас с помощью команды после выбора нескольких строк.; (println 1) ; (println 1 also won't break
Comments