[Python-ideas] Fast sum() for non-numbers

Ron Adam ron3200 at gmail.com
Tue Jul 9 03:30:54 CEST 2013


On 07/08/2013 07:39 PM, Haoyi Li wrote:
>  > Python programmers do currently write programs with linked lists.  And
> they use what ever is in the library they think is useful... the whole
> point of "batteries included".
>
> On the other hand, python programmers do currently write programs with
> normal lists, and sum(), and using sum() on lists would be useful. They're
> BOTH in the standard library too! In fact, this seems like a perfect
> argument for having sum() work on lists!

On *another* hand. These are complementary points, not opposing points.  ;-)

> The objection seems like optimizing for a hypothetical, potential use case
> far in the future at the expense of a concrete use case now. "if you can't
> make it do EVERYTHING, then we shouldn't make it do ANYTHING or people will
> get confused!" (paraphrased and exaggerated for theatrical effect).

Extra dramma noted!

> This is all on the assumption that you consider flattening list-of-lists a
> concrete use case. I for one find it annoying that i have to write a
> verbose long thingy every time i need to flatten lists, ...

I think this is the reason Alex Martinelli regretted using __add__ to 
concatenate strings.  And I agree.  A method would have worked very well.

     s1.cat(s2, s3, s4)

Or if they were long string literals:

     "".cat("... s1 ...",
            "... s2 ...",
            "... s3 ...")

This would work very well in many situations and is a fine alternative to 
implicit string concatenations in my opinion.

Although it doesn't solve the "don't iterate a strings characters when 
flattening a bunch of iterable objects problem.

Cheers,
    Ron




> ...and I have probably
> needed to flatten lists about a dozen times in the last 3 months and used
> linked lists not-at-all.
>
> Maybe you write a ton of pure-functional algorithms making great use of the
> persistence of singly-linked-lists for performant non-mutating
> head-updates, and never use vanilla lists in the code you write, and so
> having sum() work on linked lists is of great import.



More information about the Python-ideas mailing list