こんにちは,あ伊藤@山形大学です.

ruby の拡張モジュールの練習ということで,多次元配列のクラスを
書いてみました.以下 README より.
-----------------------------------------------------------------
多次元配列クラス MDArray ver. 0.1
					by 伊藤 彰則  Aug 26 1997

1. はじめに

ruby の配列である Array は,次のような特徴を持っています.

・基本的に1次元.多次元配列は「配列の配列」によって表現される.
・必要に応じて自動的に大きくなる.

これらの特徴は Array の利点でもあり,同時に欠点でもあります.
多次元配列を使いたい場合−−例えば行列の処理など−−の場合には,
最初から多次元の配列の方が便利ですし,また配列のサイズをはみ
出した場合は例外を発生してくれた方がデバッグに役立ちます.そこで,
多次元配列のクラスを作ってみました.多次元配列の処理は一般に時間
がかかりますので,クラスの基本部分をCで記述し,拡張モジュールの
形にしてみました.
--------------------------------------------------------------------

こんな感じで使えます.

ruby> a = MDArray.new([[1,2],[3,4]])
#<MDArray:0x8ea28>
ruby> a[0,0]
1
ruby> a[1,1]
4
ruby> a.to_array
[[1, 2], [3, 4]]
ruby> a.transpose.to_array
[[1, 3], [2, 4]]
ruby> a[5,5]
ERR: Subsctipt out of range
ruby> a = MDArray.new(2,3,4)
#<MDArray:0x8eae8>
ruby> a.to_array
[[[nil, nil, nil, nil], [nil, nil, nil, nil], [nil, nil, nil, nil]], [[nil, nil, nil, nil], [nil, nil, nil, nil], [nil, nil, nil, nil]]]



ftp://ftp.netlab.co.jp/pub/lang/ruby/in.coming/mdarray0.1.tar.gz
に置いておきましたので,よろしくお願いします.

# 仕事で作っているプログラムを ruby の拡張モジュールにしてしまうと,
# 再利用しやすくて楽だなあ,と思っている今日このごろ.
--_
ITO  Akinori at YAMAGATA UNIVERSITY
伊藤 彰則       山形     大学