On Fri, 29 Jul 2005 20:54:42 +1000, Steven D'Aprano <[EMAIL PROTECTED]> wrote:
>On Fri, 29 Jul 2005 06:37:52 +0000, Bengt Richter wrote:
>
>> I suggested in a previous thread that one could support such a syntax by
>> supporting an invisible binary operator between two expressions, so that
>> examine "string" translates to examine.__invisbinop__("string") if
>> examine as an expression evaluates to an object that has a __invisbinop__
>> method.
>
>Why would you want to?
>
Mainly to say that I think there is way to do it (and thus further to mulch the
idea garden ;-)
whatever the merits. As to the merits, I haven't thought about it much, but
ISTM for limited
contexts it would allow you to spell concatenating/aggregating expressions
without the
"line noise" of intervening operator glyphs, e.g.,
agg = Aggregate() first_thing second_thing 3 "four" etc.and.so.forth ;
or
mypath = Path() prefix middle filename+'.ext' ; # explicit terminating ';'
or (...) might be needed
# if EOL can be part of
whitespace delim as below
or
arr = (ArrayElementAggregator()
11 12 13
21 22 23
)
The latter presupposes that white-space including an EOL causes attempt to
access an alternate
__invisbinop__ (e.g., __invisbinopNL__) that one could define to aggregate new
rows of expressions,
but would not be an error if absent, and thus end a single-line aggregator
without explict ';' or parens.
I haven't thought of all the ramifications, I was just playing with the idea ;-)
Others might think of other ways to answer your "why" ;-)
Regards,
Bengt Richter
--
http://mail.python.org/mailman/listinfo/python-list