On 5/8/2011 10:07 AM, Steven D'Aprano wrote:

Because the test of "is this nothing, or something?" is a common, useful
test:

Because inductive algorithms commonly branch on 'input is something' (not done, change args toward 'nothing'and recurse or iterate) versus 'input is nothing (done, return base expression).

0 (nothing) vs 1, 2, 3, ... (something)
empty list versus non-empty list
empty dict versus non-empty dict
empty set versus non-empty set
empty string versus non-empty string

and non-inductive algorithms also branch on the same question.

no search results returned versus some search results returned
no network connection available versus some network connection available
no food in the cupboard versus food in the cupboard

This is a fundamental distinction which is very useful in practice.

Definitely. Python commonly hides the distinction inside of iterators called by for statememts, but StopIteration is understood as 'collection is empty'. An I suspect something vs. nothing is also the most common overt condition in if and while statements.

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to