Let's start with the easy stuff.

Peter Fitzgibbons wrote:
> A.row(1)
> ==> [10, 11, 20, 21]
>   
a[0]
=> [10, 11, 20, 21]

def a.row i
  at i-1
end
a.row 1
=> [10, 11, 20, 21]
> A.col(1)
> ==> [10, 12, 30, 32]
>
>
>   
a.transpose[0]
=> [10, 12, 30, 32]

def a.col i
  transpose[i-1]
end
a.col 1
=> [10, 12, 30, 32]

As far as the `grid' method goes, do you want it to always do a 2x2 square or are you looking for some other math here?

  def a.grid i
    i -= 1
    (0..1).map do |j|
      at(((i/2)*2)+j)[(i%2)*2,2]
    end
  end

_why