I've always wondered, why?

  c = []
  [1,2,3,4].each{ |x,y| c << [x, y] }
  c

gives us

  [ [1,nil], [2,nil], [3,nil], [4,nil] ]

why not allow it to look at the arity of the block? And thus produce

  [ [1,2], [3,4] ]

I don't see how the former is ever of any use, but the later certainly
is. am i missing something obvious?

T.