宏可以扩展标准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