[Python-ideas] Implicit String Concatenation
Jason Orendorff
jason.orendorff at gmail.com
Wed Apr 11 20:01:59 CEST 2007
On 4/11/07, Eoghan Murray <eoghan at qatano.com> wrote:
> This is exactly what I'm proposing. You could spell it __juxta__ short for
> juxtaposition or __concat__, and overload it as usual :-)
And if __juxta__ is not defined, it should fall back first on
__call__, then __mul__, then __add__. If it binds right-to-left, you
could write things like
from math import *
print (2 sin x + cos x)
We might as well make newlines an operator at the same time. There's
precedent for this in Haskell, and good synergy--adding the STM monad
to Python would solve the GIL problem. You could spell that operator
__bind__ or just __>>=__, take your pick.
And I think Guido already committed to ripping out the @decorator
syntax in Py3k in favor of comment overloading, via __rem__().
Just kidding, of course...
> Anyone with any positive reactions?
Eoghan, thanks for taking the time to write. I don't think anyone
likes the idea, though. It causes many grammatical problems: should
a[0] parse as a.__getitem__(0) or a.__juxta__([0])? What about
(foo)(bar)? And while "sin x" would of course mean sin.__juxta__(x),
"sin -x" would parse as "sin - x", or sin.__sub__(x).
A few extra + signs are a small price to pay.
-j
More information about the Python-ideas
mailing list