sum(strings)

Alex Martelli aleax at aleax.it
Thu Jun 19 16:26:49 EDT 2003


Paul Rubin wrote:

> Alex Martelli <aleax at aleax.it> writes:
>> No, if sum accepted a sequence of strings it WOULD
>> have to delegate to ''.join in that case -- and I just couldn't
>> find an elegant and totally general way to do that.
> 
> Why can't it just check if all the values are strings, and delegate if
> they are?

That would require _saving_ all the values (potentially taking up
over twice as much memory) in order to allow the argument to be any
iterable (including a non-restartable one).  I'm not saying it's
_impossible_: I'm saying Guido Pronounced against it (or other
similar tricks) as being worth the bother.  There are IMHO-better
tricks: I _could_ have checked just the _first_ item -- if that's
an instance of basestring call ''.join with a custom iterator that
returns that one checked-item then delegates the rest to the stepped-
by-one iterator on the argument -- ''.join will handle the error
diagnostics if any of the other items isn't an instance of basestring.
It's still complication, not simplicity, elegance and generality.


Alex





More information about the Python-list mailing list