Phrogz wrote:
> I think you're wrong.
> Initial state: { 0=>0 }
> First loop: k is 0, a[0] is 1, assign h[1]=>1
> A brand new key/value has been inserted to the hash this point.
> If #each then covered the next key/value pair:
> Second loop: k is 1, a[1] is 2, assign h[2]=>2 (and so on)

There are a maximum of four keys possible and you never remove any. The 
second time through you're reassigning keys that are already there from 
the first time.

- Charlie