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