The Nature of Lisp

defmacro uses newer mainstream technologies such as Java, XML, Ant, and C preprocessor macros to sneak up on Lisp’s key idea, that code and data are interchangeable (via Jonathan Rentzsch).