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