On Mon, May 04, 2020 at 02:18:15PM -0000, firstname.lastname@example.org wrote:
Ok,`even`is one of those scarce polysemic words in English ;-)
Meaning depends on context and message receiver's expectations, of course.
But... "add an even mixture of milk and cream" and "the curtain rod and the top of the window should be even" --examples taken from wordreference-- are quite similar to say "zip even iterators".
I don't know anyone who would say "an even mixture of milk and cream". Perhaps it is very old? As a native English speaker, I would say an equal amount. I don't know anyone who would use "even" in that way.
There are occasions where "even" is used to mean equal, but they are relatively unusual and usually figurative, as in "now we're even" to imply that some figurative scales have been put into balance. We wouldn't say "you and I have been paid an even amount", that would imply multiples of two, not equality.
The meaning of the second example is that the curtain rod and the top of the window should be parallel, not equal.
Obviously, my prefer option is `force_equal_length` but... you know... verbose...
Also inaccurate, since the current behaviour of zip already is to *force* equal length by truncating (in the case of `zip`) or padding (`zip_longest`). The proposed function doesn't force equal length, it raises if that expectation isn't met.
The current two versions of zip are tolerant of unequal iterators. The proposed version is not tolerant, it is strict, and requires the iterators to have the same length or it will raise.