>>15
Macros let you extend the language. If someone comes up with a cool new programming language feature, you can embed it using macros. There are countless examples out there, like the many object systems for Scheme, or the embedded Prolog in CL as demonstrated in PAIP.