any() and all() on empty list?

Antoon Pardon apardon at forel.vub.ac.be
Thu Mar 30 15:50:17 CEST 2006


Op 2006-03-30, Steven D'Aprano schreef <steve at REMOVEMEcyber.com.au>:
> Paul Rubin wrote:
>
>> Steven D'Aprano <steve at REMOVEMEcyber.com.au> writes:
>> 
>>>Think of it this way: if all(seq) is true, shouldn't it be the case
>>>that you can point to a specific element in seq that is true?
>> 
>> 
>> No, all(seq) is true if you can't point to a specific element in seq
>> that's false.
>
> No, all(seq) is true if every element in seq is true. 
> Surely that's a more intuitive definition than your 
> definition by what you can't do.
>
> The question that needs to be answered is, what if 
> there are no elements at all? That's an arbitrary 
> decision. Like the question "what is 0**0?" in 
> mathematics, some answers are more useful than others. 
> I can respect that practical answer -- but it isn't the 
> *only* answer.
>
> (For those who don't see why 0**0 is problematic, 0**x 
> is equal to 0 for all x, and x**0 is equal to 1 for all 
>   x, so what do you do for 0**0?)
>
> Here's another way of looking at the problem:
>
> all(flying elephants which are pink) => true
> all(flying elephants which are not pink) => true
>
> So, these flying elephants -- are they pink or not?

They are both.

-- 
Antoon Pardon



More information about the Python-list mailing list