web-dev-qa-db-ja.com

Clojureのブロックコメント

Clojureで複数の行をコメントするにはどうすればよいですか?

116
unj2

実際、方法があります!


(comment


(defn hey [] ("Hey there!"))


Check me out! )

コメントを(コメント..)で囲むだけです:)

楽しむ!

141
Rayne

Clojureは#_次のフォームを完全にスキップするリーダーマクロ。これは Clojure Reader に関するページに記載されています。 コメントマクロ もあります。これは同様の効果がありますが、実装方法が異なります。

上記の両方では、コメントアウトしているものが構文的に正しいS式であることが必要です。

一部のLISP方言には、任意のテキストを含むことができる複数行のコメントがありますが、Clojureのコメントは表示されません。

98
Greg Hewgill

二重引用符(文字列リテラル)を使用すると、適切なSフォームだけでなく、任意のテキストを追加できます。

(comment "

public class HelloWorld {
    public static void main(String[] args) {
        System.out.print("Hello, World");
        System.out.println();
    }
}

")
23
Ivan Sviatenko

他の例は素晴らしいですが、もう1つトリックを追加したいと思います。

時々、数行のコードをコメントアウトしたいが、まだコンパイラにコンパイルさせてエラーを報告させる(例えば、後でREPL)。

この場合、コードを(fn [] .....)でラップしたいので、まだコンパイルされたままで、呼び出されないだけです。

17
mikera

このリンクを参照してください: http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips

構文で複数行のコメントを作成できます

(comment .....
    ....)
15
chollida

Emacsとciderを使用する場合、M-x comment-regionよく使う。

9
claj

Emacsでは、コマンドM-;M-x comment-dwimのショートカット)を使用できます。テキスト/コードのマークされた領域をコメント化またはコメント解除します。したがって、関数全体または関数セットが領域に含まれている限り、その領域を簡単にコメント化またはコメント解除できます。関数M-;のEmacsリファレンスマニュアルは here にあります。

2
MLev

私が知っている複数の方法があります:

最初の1つは comment マクロを使用することです:notのみがコメント本文内のすべてのコードを評価します(ただし、それでもチェックします)括弧/括弧のバランスをとる)。 pareditの使用方法を知っていれば、いくつかのsexp呼び出しにコメントしたい場合、それほど時間はかかりません。

(comment 
 (println 1))

ただし、括弧の一致は引き続きチェックされます。そのため、括弧が不均衡な場合、コードはコンパイルされません(Java.lang.RuntimeException: EOF while reading)。

別の方法は、#_(別名、廃棄マクロ):次のsexpを廃棄します。これは私が個人的に好む方法です(通常、入力が速く、デバッグする必要がある場合はsexpsで行います)。

#_(println 1)

また、一致しない区切り文字もチェックします。したがって、括弧のバランスが取れていない場合、コンパイルも行われません。

最後に、;文字(他の言語のコメント機能に類似)をコメント化し、コンパイルはそれを完全に無視します。複数の行をコメントする場合は、すべての行の先頭に;を追加する必要があります。 、これは通常は面倒ですが、通常はテキストエディターが複数の行を選択した後、コマンドでそれを行います。

;  (println 1)
;  (println 1 also won't break
2
Rodrigo Flores