On Sep 5, 9:20 pm, "Manu Hack" <[EMAIL PROTECTED]> wrote: > On Fri, Sep 5, 2008 at 1:04 PM, castironpi <[EMAIL PROTECTED]> wrote: > > On Sep 5, 3:28 am, "Manu Hack" <[EMAIL PROTECTED]> wrote: > >> On Thu, Sep 4, 2008 at 4:25 PM, castironpi <[EMAIL PROTECTED]> wrote: > >> > On Sep 4, 2:42 pm, [EMAIL PROTECTED] wrote: > >> >> David C. Ullrich: > > >> >> > At least in mathematics, the sum of the elements of > >> >> > the empty set _is_ 0, while the maximum element of the > >> >> > empty set is undefined. > > >> >> What do you think about my idea of adding that 'default' argument to > >> >> the max()/min() functions? > > >> >> Bye, > >> >> bearophile > > >> > For max and min, why can't you just add your argument to the set > >> > itself? > > >> > The reason max([]) is undefined is that max( S ) is in S. > > >> It makes sense. > > >> >The reason sum([]) is 0 is that sum( [ x ] ) - x = 0. > > >> It doesn't make sense to me. What do you set x to? > > > For all x. > > But then how can you conclude sum([]) = 0 from there? It's way far > from obvious.
You can define sum([a1,a2,...,aN]) recursively as sum([a1,a2,...a(N-1)])+aN. Call the sum sum([a1,a2,...,aN]) "X", then subtract aN. sum([a1,a2,...a(N-1)])+aN=X sum([a1,a2,...a(N-1)])+aN-aN=X-aN For N=2, we have: sum([a1,a2])=X sum([a1,a2])-a2=X-a2 sum([a1,a2])-a2-a1=X-a2-a1 Since X= a1+ a2, replace X. sum([a1,a2])-a2-a1=(a1+a2)-a2-a1 Or, sum([a1,a2])-a2-a1=0 Apply the recursive definition: sum([a1])+a2-a2-a1=0 And again: sum([])+a1+a2-a2-a1=0 And we have: sum([])=0. -- http://mail.python.org/mailman/listinfo/python-list