From: Shin-ichro Hara <sinara / blade.nagaokaut.ac.jp>
Subject: [ruby-list:10329] Re: array
Date: Sun, 25 Oct 1998 19:41:35 +0900

> もうひと工夫できるかな。

こんなのはどうでしょうか?

def Array.tensor(sizes, index = [], &block)
  isize = index.size
  if sizes.size == isize
    ret = block.call(*index)
  else
    i = -1
    ret = new(sizes[isize]).filter{
      index[isize] = i += 1
      tensor(sizes, index, &block)
    }
    index.pop
  end
  ret
end
--
			   稲葉 浩人 (inaba / st.rim.or.jp)