使用哪种形式
在编写扩展为可能涉及分组的表单的宏时,花一些时间考虑扩展到哪个分组构造是值得的。
对于定义风格形式,例如,一个定义窗口小部件宏,通常会显示为顶级形式,那几个 defun 函数 S, defstruct S 等,它通常是有道理的使用 progn 这个,让孩子形式作为顶级表单处理。对于迭代表单,隐式标签主体更常见。
例如, dotimes , dolist 和 do 的主体都扩展为隐式标签体。
对于定义命名的代码块的表单,隐式块通常很有用。例如,虽然一个的主体 defun 定义 是一个隐式的内部 progn 这个,即隐式 progn 这个是一个块共享功能的名称内。这意味着 return-from 可用于退出函数。这样的匹配