On Wed, 29 Dec 2004 12:38:02 -0600, Mike Meyer <[EMAIL PROTECTED]> wrote: >Jp Calderone <[EMAIL PROTECTED]> writes: > > > On Wed, 29 Dec 2004 11:42:00 -0600, Mike Meyer <[EMAIL PROTECTED]> wrote: > >>[EMAIL PROTECTED] writes: > >> > >> > @infix > >> > def interval(x, y): return range(x, y+1) # 2 parameters needed > >> > > >> > This may allow: > >> > assert 5 interval 9 == interval(5,9) > >> > >> I don't like the idea of turning words into operators. I'd much rather > >> see something like: > > > > Really? I like "not", "and", "or", "is", and "in". It would not be nice > > if they were replaced with punctuation. > > They can't be turned into operators - they already are. >
They weren't operators at some point (if necessary, select this point prior to the creation of the first programming language). Later, they were. Presumably in the interim someone turned them into operators. > > This aside, not even Python 3.0 will be flexible enough to let you define > > an infix decorator. The language developers are strongly against > > supporting > > macros, which is what an infix decorator would amount to. > > Could you please explain how allowing new infix operators amount to > supporting macros? You misread - I said "what an infix decorator would amount to". Adding new infix operators is fine and in no way equivalent to macros. As you said in your reply to Steve Holden in this thread, one way support for @infix could be done is to allow the decorator to modify the parser's grammar. Doesn't this sound like a macro to you? > > > Now, they might be convinced to add a new syntax that makes a function > > into an infix operator. Perhaps something like this: > > > > def &(..)(x, y): > > return range(x, y + 1) > > And while you're at it, explain how this method of defining new infix > operators differs from using decorators in such a way that it doesn't > amount to supporting macros. Simple. You can't do anything except define a new infix operator with the hypothetical "def &( <operator> )" syntax. With real macros, you can define new infix operators, along with any other syntactic construct your heart desires. Jp -- http://mail.python.org/mailman/listinfo/python-list