Dirty Macros in Lisp
Intended audience: Programmers familiar with Lisp, or who are very interested in digging deep into Lisp and Lisp macros.
In programming languages, the term ‘macro’ is used to describe any programming language feature that is available to the programmer by which may be programatically modify the source code. The C pre-processor, C++ templates, and Lisp macros are the most well known examples of said macros.
One the biggest headaches to any programmer writing macros is are name collisions. Name collisions occur when you end up with two ‘variables’ that have got the same name. There is a good example in C here:
http://en.wikipedia.org/wiki/Hygienic_macro
By analyzing the implement of a (toy) object system using closures, I would like to explain how a system called ‘hygienic macros’ can avoid name collisions for you automatically.








