我体验到了宗教大师的感受: 一定要把我的知识传布开来, 至少要让10个迷失的灵魂得到拯救。按照通常的办法, 我把这些道理(就是刚开始别人砸过来的那一套, 不过现在我明白了真实的含义)告诉旁人。...如果我们用(+ 4 5)来代替arg1, 那么, 程序会先求出结果, 就是9, 然后把9传递给函数。宏的工作方式和函数类似。主要的差别是, 宏的参数在代入时不求值。...(macro-name (+ 4 5))
这里, (+ 4 5)作为一个表传递给宏, 然后宏就可以任意处理这个表, 当然也可以对它求值。宏的返回值是一个表, 然后有程序作为代码来执行。...实际上, 编译器会替我们工作, 调用相应的宏。我们所要做的, 仅仅是创建一个把数据转换为适当代码的宏。...每次程序中出现triple的时候,
(triple 4)
都会被替换成:
(+ 4 4 4)
我们可以为任务表程序写一个宏, 把任务数据转换为可执行码, 然后执行。