LISP-マクロ

マクロを使用すると、標準のLISPの構文を拡張できます。

技術的には、マクロはs式を引数として受け取り、LISP形式を返す関数です。LISP形式は評価されます。

マクロの定義

LISPでは、名前付きマクロは、名前付きの別のマクロを使用して定義されます。 defmacro. マクロを定義するための構文は次のとおりです。

(defmacro macro-name (parameter-list))
"Optional documentation string."
body-form

マクロ定義は、マクロの名前、パラメーターリスト、オプションのドキュメント文字列、およびマクロによって実行されるジョブを定義するLisp式の本体で構成されます。

setTo10という名前の単純なマクロを作成してみましょう。このマクロは、数値を取り、その値を10に設定します。

main.lispという名前の新しいソースコードファイルを作成し、その中に次のコードを入力します。

(defmacro setTo10(num)
(setq num 10)(print num))
(setq x 25)
(print x)
(setTo10 x)

[実行]ボタンをクリックするか、Ctrl + Eと入力すると、LISPはすぐに実行し、返される結果は-です。

25
10