[Python-Dev] Rationale for sum()'s design?

Eric Nieuwland eric.nieuwland at xs4all.nl
Mon Mar 14 13:34:44 CET 2005

Greg Ewing wrote:
> Guido van Rossum wrote:
>> - the identity (defaulting to 0) if the sequence is empty
>> - the first and only element if the sequence only has one element
>> - (...(((A + B) + C) + D) + ...) if the sequence has more than one 
>> element
> While this might be reasonable if the identity
> argument is not specified, I think that if an
> identity is specified, it should be used even
> if the sequence is non-empty. The reason being
> that the user might be relying on that to get
> the semantics he wants.
> Think of the second argument as "accumulator
> object" rather than "identity".

+1 for Greg
I think of the second argument as a running total which defaults to the 
operator's neutral element.

Perhaps the second argument should not be optional to emphasise this. 
After all, there's much more to sum() than numbers.


More information about the Python-Dev mailing list