Lisp-macros
提供:Dev Guides
LISP-マクロ
マクロを使用すると、標準のLISPの構文を拡張できます。
技術的には、マクロは引数としてs-expressionを取り、評価される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