56. 程序先建一个gloabl 的变量a, 赋值cat;然后运行macro程序,建一个local macro 变量a ,赋值frog,因为最终调用了这个程序,所以local a 的值最终是pig.但是local macro 变量只在macro 程序中有效,所以macro 程序调用完之后,local a 会从local symbol table 中删除,所以最终只有global table中的a,她的值就是cat
30. 和56不同,在complie macro 程序的时候,当读到%let a = orange;的时候,程序先到local symbol table 中去找local a,但是没有这个local变量;然后去global table 中去找,找到了有global macro a.所以就将它的值改成orange.
[此贴子已经被作者于2008-4-18 13:15:43编辑过]