http://qs1969.pair.com?node_id=279537


in reply to Re: •Re: Pair of items
in thread Pair of items

No, if every element of @x is less than the first element of @y, then all of @x first gets nibbled element by element because of the first statement within the loop, then all of @y gets nibbled element by element because of the second statement within the loop, and then we drop out of the loop.

Perhaps you're arguing that I can optimize that to "and". Probably true. But it doesn't break even when it's an "or", unless I'm missing something.

I constructed this loop by thinking about loop invariants, a very valuable tool. In this case, we know that no pair of equal numbers can ever get shifted off the lists, and yet we are shifting while we are looping, so we're always moving closer to either an equal pair, or two empty lists.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.

Replies are listed 'Best First'.
Re: •Re: Re: •Re: Pair of items
by Simpleton (Initiate) on Aug 09, 2003 at 02:25 UTC
    Actually, it gets nibbled down by the first statement, and then keeps nibbling at the empty @x because $x[0] < $y[0] is true even if @x is empty. Feed the subroutine ([1,2,3], [4,5,6]) and it never exits.