LISP - 宏 - 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)

当您单击Execute按钮,或按下Ctrl+ E,LISP立即执行它,返回的结果是:

25 
10