On Wednesday, August 28, 2002, at 10:54 PM, Richard A. O'Keefe wrote:
I fully and completely agree that when a programmer writes an
iteration,
*THAT* programmer is responsible for making sure that the collection is
not changed. But when someone calls #addAll:, they are not writing an
iteration. It was the author of the #addAll: implementation who wrote
the iteration, and it was the author of the #addAll: implementation who
had the responsibility for making sure that it either worked or was
documented as not working.
Here is the crux of the argument. In my view, the iteration is implied
and, moreover, is impossible to define meaningfully without using some
language of iteration, directly or indirectly. Whether the iterand is
a receiver, parameter or the result of an expression does not, to me,
seem relevant. So, too, it seems that many Smalltalk illuminati agree.
Richard does not.
But at least he agrees with the first principle. That is a good basis
for proceeding.
|