> > Yes. Nonetheless, the maximum() function does exactly what it is intended > > to do *with the inputs it receives*. The failure is outside the function; > > it did the right thing with the data actually passed to it, the problem > > was a user misunderstanding as to what data were being passed to it. > > > So there's a bug -- there's code which does not do what it was intended > > to do. However, that bug is in the caller, not in the maximum() > > function. > > > This is an important distinction -- it means we can write a function > > which performs that function reliably. Now we just need to figure out > > how to call it with valid data... :) > > We lost some important context somewhere along the line: > > > > > in C I can have a function maximum(int a, int b) that will always > > > > work. Never blow up, and never give an invalid answer. If someone > > > > tries to call it incorrectly it is a compile error. > > Please take note of the second sentence. > > One way or another, this claim is plainly false. The point I was trying > to make is not so much that the claim is false (someone else was already > doing that), but that it can be demonstrated to be false without having > to rely on any run-time input. >
The second sentence is not disproved by a cast from one datatype to another (which changes the value) that happens before maximum() is called. -- http://mail.python.org/mailman/listinfo/python-list