From: Toyofuku Date: 1999-08-17T23:16:19+09:00 Subject: [ruby-dev:7706] Re: [ruby-ext:00382] New coerce scheme 豊福@パパイヤです。 けいじゅさん > この方法で気になるのは, ほとんど同じアルゴリズムを持つ演算が2つづつ必要 > になりますよね. でも例えば matrix.rb では Matrix に対する左側からの演算は Scaler の方に書かれているわけで見た目クラスがわかれている だけで実質2つずつ書かれているのと同じですよね。 と思って matrix.rb を見ると、 Matrix側 when Numeric; rows = @rows.collect { |row| row.collect { |e| e * m; } } return Matrix.rows(rows, false) Scaler側 when Vector, Matrix other.collect{|e| @value * e} と文字づら上同等じゃないですね。内容は同じなのかな。 >>ただ、(ii) があれば (iii) はほとんど必要ないですよね。前に >>必要になる例をあげていただいた覚えがありますが。 > > さらにこうなると... > (ii)は基本的に実装しなくて(iii)を利用する考え方: ... > これだと op! は基本的に実装しなくても良さそうなので, なかなかよいかもし > れません. 方針としては、 ・基本的に(iii)を使う。 ・(iii)に書くと不自然になるものは(ii)で書く。 です。 --- 豊福@パパイヤ unbound@papaya.juice.or.jp toyofuku@juice.or.jp