我相信, 如果以C语言做例子来讨论元编程, 理解起来一定会容易得多。好, 我们接着看。
一个问题是, 为什么要用代码来写代码呢? 在实际的编程中, 怎样做到这一点呢? 到底元编程是什么意思?...它们有一个神秘的名字, 叫做元编程。所谓元编程的本义, 就是如此。
元编程本来可以用到无数多的地方, 但实际上使用的次数却没有那么多。...事实上它是一个指向代码块的指针, 附带有一些其他信息(例如一组参数变量)。只有在把函数赋予其他符号时, 它才具有了名字, 就像把一个数值或字符串赋予变量一样的道理。...Lisp的内置函数集十分精简, 只包含了十分必要的部分。剩下的函数都是作为标准库来实现的。
Lisp宏
我们已经看到, 元编程在一个类似jsp的模板引擎方面的应用。我们通过简单的字符串处理来生成代码。...而且, Lisp没有语义约束, 你可以构造任何数据结构, 只要你原意。
Lisp通过宏(macro)来做元编程。我们写一组宏来把任务列表(to-do list)转换为专用领域语言。