David A. Wheeler wrote:
> I said:
>>> Actually, complex macros work just fine, as long as you stick to the
>>> Lisp convention that "operator is always named first in a list".  As long 
>>> as you do that,
>>> complex macros that reach deeply into their parameters will still work.  
>>> But this is
>>> why infix operators have trouble - the operator is NOT first in an infix 
>>> expression.
>>> By making this translation at read-time, complex macros work again.
> 
> Alan Manuel Gloria:
>> Well, the operator in this case is the infix-macro name (say nfx).
>> Although this does prevent the complex macros from digging inside the
>> (nfx ...) form easily.
> 
> It's not just "easily"; they better not dig in at ALL.  Because they'd have 
> to understand
> details about "nfx" to work, and fail once "nfx" changes :-(.

This is what I was on about before. It seems to me that things would be 
safer, if upon

     (foomacro (nfx 1 + 1) ...)

nfx was expanded first, and then foomacro. Then foomacro wouldn't have 
to care what nfx does, because foomacro always receives expanded 
s-exprs. It fits my programmer intuition better as well: since I ALWAYS 
expect postorder evaluation, why should I expect preorder macro expansion?

Not that you're in a position to change anything. :)

Neil

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Readable-discuss mailing list
Readable-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/readable-discuss

Reply via email to