私はClojureが初めてです。私は数ヶ月前に始めました。マクロを勉強しようとしています。
高階関数はラムダを取り、条件とフィルターに基づいて必要な回数のうちの1つを実行できるため、Clojureのマクロと高階関数の違いを理解するのに最初は混乱しました。
そのため、これに関する簡単な例を含む質問を StackOverflow 自体に投稿しました。回答で疑問が解消されました。
これで分かったのですが、
- 本体を評価する関数とは異なり、マクロはすべての引数を評価しません。
- マクロは、何を評価し、何を評価しないか、および引用、引用解除、スプライシング構文を使用してコードを別のコードに変換する方法を選択できます。
- 次に、マクロから出力される最終的なコードが評価されます。
だから私の質問は、 C で使用されるプリプロセッサ ディレクティブやマクロとどう違うのですか? Lisp/Clojure マクロは、C マクロが完全に欠いており、広く使用されている開発者にどのような力を与えますか?