On Thu, Dec 22, 2011 at 1:38 PM, Ron Garret ron@flownet.com wrote:
It's not a "special circumstance", it's what macros do. The S-expressions that are arguments to macros are passed verbatim (that is, without being evaluated) to the macro expander function for that macro. It gets confusing because one of the things that the macro expander can elect to do is to return that symbol as part of the macro expansion in a context where that symbol gets evaluated, so a symbol passed as an argument to a macro *might* become a variable reference, or it might not.
Ah, I see this now. Even within W-H-O, the same variable gets evaluated in some places: if I use a variable for an attribute value it gets evaluated, but but not when I use it as the tag body. This is clearly spelled out in the docs, I see now, but it took me a while to wrap my head around it.
Thanks!
Tyler