LISP - 宏

宏允许您扩展标准 LISP 的语法。

从技术上讲,宏是一个函数,它采用 s 表达式作为参数并返回 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