Looking for clojure Answers? Try Ask4KnowledgeBase
Looking for clojure Keywords? Try Ask4Keywords

clojureマクロ


構文

  • マクロ展開の例で使用される'記号は、 quote演算子の単なる構文的な砂糖です。その代わりに(macroexpand (quote (infix 1 + 2)))を書くことができます。

備考

マクロは、コンパイル時、つまりread-eval-print-loopevalステップ中に実行される単なる関数です。

リーダーマクロは、コンパイル時ではなく、読み込み時に展開されるマクロの別の形式です。

マクロを定義するときのベストプラクティス。

  • alpha-renameing、マクロは展開バインディング名の競合が発生する可能性があるためです。バインディングの競合は、マクロを使用するときに解決するのが非常に直感的ではありません。このため、マクロがスコープにバインディングを追加するたびに、各シンボルの末尾に#を使用することが必須です。

マクロ 関連する例