On Sat, Aug 9, 2014 at 12:20 PM, Alexander Belopolsky email@example.com wrote:
On Sat, Aug 9, 2014 at 1:08 AM, Steven D'Aprano firstname.lastname@example.org wrote:
We wouldn't be having these interminable arguments about using sum() to concatenate strings (and lists, and tuples) if the & operator was used for concatenation and
- was only used for numeric addition.
But we would probably have a similar discussion about all(). :-)
Use of + is consistent with the use of * for repetition. What would you use use for repetition if you use & instead?
If the only goal is to not be tempted to use sum() for string concatenation, how about using *? This is more consistent with mathematics terminology, where a * b is not necessarily the same as b * a (unlike +, which is commutative). As an example, consider matrix multiplication. Then, to answer your question, repetition would have been s ** n.
(In fact, this is the notation for concatenation and repetition used in formal language theory.)
(If we really super wanted to add this to Python, obviously we'd use the @ and @@ operators. But it's a bit late for that.)