fog*_*gus 15 lisp macros clojure common-lisp
McCarthy的原始Lisp和其他一些化身之后没有像我们现在在Common Lisp,Clojure,Scheme等中拥有的宏设施......我知道.
然而,我不清楚到底是如何形成宏的,首先是它们有什么实现,以及它们的动机是什么.如果您愿意,可以参考论文和来源.
Rai*_*wig 12
来自Lisp的演变(PDF):
1963年,蒂莫西·P·哈特(Timothy P. Hart)在一篇简短的麻省理工学院AI备忘录[哈特,1963年]中似乎已将宏引入Lisp
看到:
AIM-57作者:Timothy P. Hart
LISP的MACRO定义
1963年10月
ftp://publications.ai.mit.edu/ai-publications/0-499/AIM-057.ps
ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-057.pdf
在LISP 1.5中,特殊形式用于三个逻辑上分离的目的:a)到达alist,b)允许函数具有无限数量的参数,以及c)保持参数不被评估.新的LISP解释器可以通过使alist成为SPECIAL类型或APVAL类型实体来轻松满足需求(a).使用(b)和(c)可以通过在define中加入MACRO指令扩展器来代替.我提议这样一个扩展器.