带有宏的第一个Lisp?

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指令扩展器来代替.我提议这样一个扩展器.


Aid*_*lly 9

John Shutt的博士论文第一部分涉及lisps的历史,包括宏的引入,我相信.我在阅读时并不完全清楚,但似乎他声称用"可扩展语言"运动(这与lisp无关)或多或少地确定了宏,以及MD McIlroy 1960年的论文"宏扩展指令" "Compiler Languages",是可扩展语言运动的基础......意味着宏在1960年被引入学术文献.

  • 嗯.我希望有一种方法可以将多个答案标记为"答案".:-( (3认同)