itertools icon indicating copy to clipboard operation
itertools copied to clipboard

all_equal vs. all_equal_value

Open IttayWeiss opened this issue 1 year ago • 0 comments

It seems to be a fair expectation that all_equal_value().is_ok() should agree with all_equal(). But on an empty iterator the former returns false, while the latter returns true.

Can be resolved by keeping the current behaviour of all_equal (which is the mathematical definition whereby on an empty iterator vacuously all items are equal) and changing the return type of all_equal_value to Result<Option<Iter::Item>, (Iter::Item, Iter::Item)>.

IttayWeiss avatar Jul 29 '24 07:07 IttayWeiss