回答:
実は道があります!
(comment
(defn hey []
("Hey there!"))
Check me out!
)
コメントを(コメント..)で囲むだけです:)
楽しんで!
Clojure #_
は、次のフォームを完全にスキップするリーダーマクロをサポートしています。これはClojureリーダーに関するページで言及されています。同様の効果を持つコメントマクロもありますが、実装方法が異なります。
上記の両方とも、コメントアウトしているものが構文的に正しいS式であることを必要とします。
一部のLisp方言には、任意のテキストを含むことができる複数行のコメントがありますが、Clojureには表示されません。
*scratch*
バッファー内で、複数行の後ろ;
;;
または;;;
複数行にジャンクを入力し、セミコロンの後の最初の単語にカーソルを置いて、を押しますMeta-Q
)。
二重引用符(文字列リテラル)を使用すると、適切なSフォームだけでなく、任意のテキストを追加できます。
(comment "
public class HelloWorld {
public static void main(String[] args) {
System.out.print("Hello, World");
System.out.println();
}
}
")
Hello
、3番目の形式はシンボルWorld
、4番目の形式は別の文字列です。 comment
すべてのフォームを無視します。したがって、この例でHello, World
は、合法的なクロジュールとして解析できるのは幸運です。任意のテキストでは機能しません。たとえば(comment "print("/foo")")
、エラーで死んでしまいますInvalid token: /foo
。
このリンクを参照してください:http : //en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips
構文を使用して複数行のコメントを作成できます
(comment .....
....)
私が知っているいくつかの方法があります:
1つ目はコメントマクロの使用です。コメントボディ内のすべてのコードを評価するだけではありません(ただし、括弧/括弧のバランスが取れているかどうかをチェックします)。pareditの使い方がわかっている場合は、sexpの呼び出しにコメントを付けてもそれほど時間はかかりません。
(comment
(println 1))
ただし、括弧の一致は引き続きチェックされます。したがって、括弧のバランスが取れていない場合、コードはコンパイルされません(yielding java.lang.RuntimeException: EOF while reading
)。
別の方法は#_
(別名discardマクロ)を使用することです:次のsexpを破棄します。これは私が個人的に好む方法です(タイプするのが速く、通常はデバッグする必要があるときにsexpsでそれを行います):
#_(println 1)
また、一致しない区切り文字がないかどうかをチェックします。そのため、括弧のバランスがとれていない場合は、コンパイルされません。
最後に、;
行をコメント化する文字があり(他の言語のコメント機能と同様)、コンパイルはそれを完全に無視します。複数の行にコメントを付ける場合は、すべての行の先頭に;を付ける必要があります。、これは通常面倒ですが、通常、テキストエディターは複数の行を選択した後、コマンドでそれを行います。
; (println 1)
; (println 1 also won't break
長いコメントブロックの場合、マクロ#_または(コメント...)が通常どおり機能しなかったため、VSCODE(OS X)でコメントブロックを実行しました。