[#41455] オブジェクト同士の演算などを実装するには? — Hideo Konami <konami@...>

小波です.

24 messages 2005/11/02
[#41457] Re: オブジェクト同士の演算などを実装するには? — rubikitch <rubikitch@...> 2005/11/02

From: Hideo Konami <konami@kyoto-wu.ac.jp>

[#41459] Re: オブジェクト同士の演算などを実装するには? — Hideo Konami <konami@...> 2005/11/03

小波です.

[#41461] Re: オブジェクト同士の演算などを実装するには? — IWAOKA Masahiro <iwaoka@...> 2005/11/03

いわおかです。

[#41489] Matrixの継承について — argento@...

はじめまして。吉田と申します。

25 messages 2005/11/06
[#41495] Re: Matrixの継承について — Yukihiro Matsumoto <matz@...> 2005/11/06

まつもと ゆきひろです

[#41497] Re: Matrixの継承について — "T.Y" <argento@...> 2005/11/07

るびきち様、まつもと様

[#41499] Re: Matrixの継承について — keiju@... (石塚圭樹) 2005/11/07

けいじゅ@いしつかです.

[#41529] Re: Matrix の継承について — Shin-ichiro HARA <sinara@...> 2005/11/12

原です。

[#41535] Re: Matrix の継承について — keiju@... (石塚圭樹) 2005/11/14

けいじゅ@いしつかです.

[#41536] Re: Matrix の継承について — Yukihiro Matsumoto <matz@...> 2005/11/14

まつもと ゆきひろです

[#41537] Re: Matrix の継承について — keiju@... (石塚圭樹) 2005/11/14

けいじゅ@いしつかです.

[#41538] Re: Matrix の継承について — Yukihiro Matsumoto <matz@...> 2005/11/14

まつもと ゆきひろです

[#41503] 数を減らしてくループ — Takeshi Horinouchi <horinout@...>

堀之内と申します。

13 messages 2005/11/08

[#41602] エクセルファイルを読み込む際の問題(質問) — "Hisashi Yahata" <yahatah@...>

質問で恐縮ですが、ご教示ください。

14 messages 2005/11/28

[#41624] MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

26 messages 2005/11/30
[#41625] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...> 2005/12/01

永井@知能.九工大です.

[#41627] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — 天野 竜太郎 <wn9r-amn@...> 2005/12/01

天野竜太郎と申します。

[#41636] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...> 2005/12/02

永井@知能.九工大です.

[#41637] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — 天野 竜太郎 <wn9r-amn@...> 2005/12/02

8.4.10のtcl.hやtk.hは、

[#41644] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...> 2005/12/03

永井@知能.九工大です.

[#41646] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — 天野 竜太郎 <wn9r-amn@...> 2005/12/03

> Tcl/TkAqua もこの Macintosh のルールに従うのであれば

[#41647] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...> 2005/12/03

永井@知能.九工大です.

[#41649] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...> 2005/12/03

永井@知能.九工大です.

[#41650] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — 天野 竜太郎 <wn9r-amn@...> 2005/12/04

天野です。

[#41651] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...> 2005/12/04

永井@知能.九工大です.

[#41653] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — 天野 竜太郎 <wn9r-amn@...> 2005/12/04

[#41658] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...> 2005/12/04

永井@知能.九工大です.

[#41663] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — 天野 竜太郎 <wn9r-amn@...> 2005/12/04

完全に私の勘違いです。

[#41664] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — Hidetoshi NAGAI <nagai@...> 2005/12/05

永井@知能.九工大です.

[#41665] Re: MacOS X Aqua 対応のための tcltklib の extconf.rb — 天野 竜太郎 <wn9r-amn@...> 2005/12/05

ruby-list:41651の

[ruby-list:41498] Re: Matrixの継承について

From: rubikitch <rubikitch@...>
Date: 2005-11-07 04:25:07 UTC
List: ruby-list #41498
From: "T.Y" <argento@pearl.ocn.ne.jp>
Subject: [ruby-list:41497] Re: Matrixの継承について
Date: Mon, 7 Nov 2005 12:13:19 +0900

> エルミート行列で表現される演算子のクラスを作ろうとしていて、
> メソッドと定数をMatrixに追加したかったのが主な目的です。
> is_a Matrix として継承が自然かなと思ったのですが、まつもとさんが
> 書かれたように、サブクラスを作ることが想定されていないクラスも
> あるので、継承は慎重に使わないといけないのですね。

is_a? のかわりに matrix? で行列であるかどうかの判定につかうといいかも。

class Object
  def matrix?
    false
  end
end

class Matrix
  def matrix?
    true
  end
end

class YaMatrix
  # Matrix が用意しているメソッドを実装
  # これでMatrixの置き換えとして使える
  # 委譲でも可。
  
  def coerce(other)
    # Matrixとの演算のために変換
  end

  def matrix?
    true
  end  
end


> ただ、今後メソッドをオーバーライドしたくなったとき、添付ライブラリ
> 既存クラスの動作を変更するのは嫌だったということはあります。
たしかにライブラリを記述する場合にはためらわれますね。

> > もし、特定の行列のみ new_method_for_yamatrix メソッドを持たせたければ、
> > extendしてしまいましょう。
> 
> Matrixは数みたいなものなので、特異メソッドを持たせるには
> 抵抗があったのでした。

継承がだめならforwardable.rbを使って委譲を使うのもいいです。
インスタンス変数にMatrixを持たせて、そのMatrixにメッセージを投げてしまいます。
やりかたはいろいろあるんです。Rubyですから。

るびきち☆
http://www.rubyist.net/~rubikitch/

In This Thread