Eric Raymond写过一篇叫做“怎样成为黑客”的文章,告诉那些想当黑客的人,必须掌握的编程语言。他建议从python或者java入门,因为它们很容易上手。为了理解Unix内幕,黑客还应当学习c;为了管理系统和CGI脚本,还要学习Perl。最后,真正的黑客需要考虑学习Lisp: “学习Lisp可以给你极大的收获,让你成为一个更好的程序员,即使你以后不会常常用到它。“ 这和学习拉丁语的原因很像。拉丁语不会给你一份工作,除非你要当个拉丁语教授。但是它能锻炼你的头脑,让你成为一个更好的作家。
可以生成程序的程序?什么时候会需要这么作?如果你用Cobol的方式思考,这种需求并不常见;如果用Lisp的方式思考,你会经常想要这么作。这里如果能给出一个强大的宏的例子,也许会比较方便阐明。但是对一个不懂Lisp的人来说,会觉得那像是在胡扯,我没办法把需要让你理解宏的预备知识在这里说清楚。在《Ansi Common Lisp》这本书里,我已经很快的引导读者理解所有的东西,尽管如此,在160页之前,我都没有提到宏。