On Wed, May 10, 2006 at 08:09:45AM +0100, Daniel Hulme wrote:
: >     qX ::= "q:x:y:z";
: > 
: > as a simple, argumentless "word" macro.
: But would that DWIM when I come to write
: qX(stuff, specifically not an adverb argument);
: ?

Just looking at it, I would expect qX() to call a function.  Knowing the macro,
I'd expect it to do q :x :y :z() and then treat the ; as the delimiter, which
probably means the macro should have been written:

    qX ::= "q:x:y:z ";

and then the qX() form either does "q:x:y:z ()" or calls the qX() function.
Which all probably means that we're still better off distinguishing quote
macros from "word" macros so that the intent is clear.  A quote macro would
have no doubt: qX() always means to call the qX function, not the quoter.


Reply via email to