On Tue, 2006-07-11 at 12:50 -0700, Trey Harris wrote: > > But I don't think that will do, because it fails when you don't know > > WHICH list would be the longest (or you have to specify them all > > as :with, and that's rather counter-intuitive). Perhaps a stand-alone > > adverb, :parity makes more sense. > > I don't understand how the word "parity" is being used here... It's not > in the mathematical sense of "even vs. odd", nor in the telecomm sense of > bit-counting (since one would want to stop if one out of four iterators > stopped generating, but also if two out of four did). In the colloquial > sense of parity meaning "equality amongst peers", perhaps it makes more > sense, but it's a rather overloaded an poorly-understood word, IMHO.
Yeah, I see your problem. I WAS using the "equality amongst peers" definition, but you're probably right that there's too much baggage. Having read and digested the rest of your mail and your comments on IRC, let me propose (as I did on IRC before you had to run): zip(:fewest, @a;@b;@c); # Until one runs out zip(:finite, @a;@b;@c); # Stop if only known-infinite ranges are left roundrobin(:most, @a;@b;@c); # Include undefs until all arrays empty zip(@a;@b:fewest;@c); # empty @b, then stop. zip(@a:fewest;@b;@c:fewest); # stop when non - @b is empty zip(@a:fewest;@b:fewest;@c:fewest); # Same as stand-alone :fewest roundrobin(@a;@b:most;@c); # fill in undefs for @b until @a,@c empty roundrobin(@a:most;@b;@c:most); # fill in undefs for all but @b roundrobin(@a:most;@b:most;@c:most); # Same as stand-alone :most I think that covers all of the bases that I, you and Larry proposed. I'm still not clear on how :fewest and :most modify a container, but I'm convinced that once I make sense of it, there will be other ways in which I want to use that modifier. -- Aaron Sherman <[EMAIL PROTECTED]> Senior Systems Engineer and Toolsmith "We had some good machines, but they don't work no more." -Shriekback