Блокировать комментарии в Clojure



Как прокомментировать несколько строк в Clojure?

554   8  

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-x comment-region который я использую часто.

в 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

    Ничего не найдено.