こんにちは,あ伊藤@山形大学です. 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 伊藤 彰則 山形 大学