From: gotoken@... (GOTO Kentaro) Date: 1998-08-17T10:13:59+09:00 Subject: [ruby-list:9124] Re: irb -m ごとけんです In message "[ruby-list:9123] Re: irb -m" on 98/08/16, 石塚圭樹 writes: >>>で,以前にも話が出たような気がするのですが,行列に対してto_i >>>やto_fを行った時に実数や整数ではなく,それらの配列を返すって >>>のはまずいように思います. >私も, 変更した方が良いというのはもっともだと思います. > >Matrix(Vector)とComplexにある問題ですね. ですので, to_mofはちょっとっ >て気がしますね. > >同じ名前でないと実装の時に苦しむと思います: > >Matrix#to_iなどは各要素に対してto_iしていますよね. で, 各要素がto_iを >知っているのでうまく動作しています. 今度は, そうもいかなくなるわけです >よね... > >Matrix#to_mofで各要素に対して, to_mofを呼ぶというわけにもいかないです >しね. > >ということで, 他に反対がないならmap_to_*がよいんじゃないでしょうか? なるほど、実装みてなかったのですが、collect が そういう再定義になってたんでしたか。 あと、行列と言っても形式的なモノだったんですね。 ま、厳格(中身がNumeric)な行列より使いやすいかも知れません。 Jacobian とか扱えるんですね。 うーん、どうでしょう、僕はやっぱり to_mof とかにして class Matrix def to_mof collect{|e| case e.type when Matrix e.to_mof when Vector e.to_vof else e.to_f } end end などかなぁと思うのです。 まぁ、めんどうなら map_to_* でも良いです。 >>ところで対角化や各種分解や固有値が matrix.rb や >>拡張モジュールで実装される予定はありますか? >あるといいですよね(^^;;; ですよね (^^;;;;; では暇をみて作る事にします。 やっぱり拡張モジュールかなぁ。 -- gotoken