Lisp中编写宏的步骤以及规范

时间:2021-11-26 14:12:03

一.编写步骤

1.编写示例的宏调用以及它应当展开的代码,反之亦然.

2.编写从示例调用中生成手写展开式的代码.

3.确保宏抽象不产生"泄露".

二.遵循规则

1.除非有特殊理由,否则需要将展开式中任何子形式放在一个位置上,使其求职顺序与宏调用的子形式相同.

2.除非有特殊理由,否则要确保子形式仅被求值一次,方法是在展开式中创建变量来持有求值参数形式所得到的值,然后在展开式中所有需要用到该值的地方使用这个变量.

3.在宏展开期使用GENSYM来创建展开式中用到的变量名.