[Python-ideas] Why does `sum` use a default for the `start` parameter?

Stephen J. Turnbull stephen at xemacs.org
Sat Dec 5 19:10:51 CET 2009


George Sakkis writes:
 > On Sat, Dec 5, 2009 at 6:45 PM, Andre Engels <andreengels at gmail.com> wrote:

 > > In your proposed implementation, sum([]) would be undefined.
 > 
 > Which would make it consistent with min/max.

There's no justification for trying to make 'min' and 'sum'
consistent.  The sum of an empty list of numbers is a well-defined
*number*, namely 0, but the max of an empty list of numbers is a
well-defined *non-number*, namely "minus infinity".

The real question is "what harm is done by preferring the
(well-defined) sum of an empty list of numbers over the (well-defined)
empty sums of lists and/or strings?"  Then, if there is any harm, "can
the situation be improved by having no useful default for empty lists
of any type?"  Finally, "is it worth breaking existing code to ensure
equal treatment of different types?"

My guess is that the answers are "very little", "hardly at all", and
"emphatically no."<wink>



More information about the Python-ideas mailing list