On 1/17/2014 7:09 PM, Andrew Barnert wrote:
On Jan 17, 2014, at 15:34, Terry Reedy
wrote:
Min and max are inherently functions of multisets, with order irrelevant but duplicate values allowed.
I should have said a multiset of comparable objects.
I'm not sure that's necessarily true. The maximal value of a sequence makes every bit as much sense as the maximal value of a set or multiset
A list of comparable objects *is* a multiset of comparable objects. So is any iterable of comparable objects. Which is why 'iterable of comparable objects' is the proper domain for max. Similar comments apply to any commutative associative operator.
For example, if I have a series of experiments at different times, the (time, value) pairs have an obvious meaningful order, and asking for max(experiments, key=itemgetter(1)) is a meaningful thing to do.
max((value,time) for time,value in experiments) gives the lastest high value. In general max((val,i) for i,val in enumerate(iterable)) does the same. If max gave the last maximum, it would be trickier to get the first maximum, just as it is now to get the last minimum. -- Terry Jan Reedy