[#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:41535] Re: Matrix の継承について

From: keiju@... (石塚圭樹)
Date: 2005-11-14 03:01:46 UTC
List: ruby-list #41535
けいじゅ@いしつかです.

In [ruby-list:41529] the message: "[ruby-list:41529] Re: Matrix の継承
について", on Nov/12 16:30(JST) Shin-ichiro HARA writes:

>原です。

>確かに複数の行列クラスを体系的に継承関係で構築すると破綻すると思う
>のですが、ちょっとMatrixのメソッドをパクって、、という需要もあるわ
>けで、実際Arrayなどでは、
>
>  class YaArray < Array
>  end
>  a = YaArray[0, 1, 2]
>  p a.class #=> YaArray
>
>となっています。

これは...

>のように定義するのをRubyのポリシーとしてしまってもいいのでは? 

を持ち出すのも何ですが, 逆に禁止してくれる方が間違った利用法を防いでく
れるという意味では, Rubyっぽいのでは?

>いっそ、吉田さんの提案のように、コンストラクタなどのクラスメソッド
>は特別な理由がない限り、
>
>  def Matrix.identity(n)
>    Matrix.scalar(n, 1)
>  end
>
>ではなくて、
>
>  def Matrix.identity(n)
>    self.scalar(n, 1)
>  end
>
>のように定義するのをRubyのポリシーとしてしまってもいいのでは? 

うーん. ちょこっと, サブクラスをつくると言うほど, 事情はそう簡単なでも
ないのでは?

というのも, Matrixにはコンストラクタと言うか, 結果としてMatrixを生成す
るメソッドがたくさんあるわけですが,

  Matrix#+
  Matrix#*
  Matrix#inv
    :

class S<Matrix

として, 

  S#+ -> S
  S#* -> S
  S#inv -> S

となる保証は全然ないですよね?

さらに, 

  S#indentity -> S

になる保証もないとうか, 存在しない場合もあるわけですよね. といことで,
Matrixのサブクラスを作成する場合, ここのメソッドについてどうなるか調べ
なくてはいけなくて, S#identityも調べなくてはいけないという意味では変わ
りません.

ということで, 

  ちょこっと, Matrixのサブクラスをつくる

と言うことはあり得ないと主張したいです.

とはいえ,

>  def Matrix.identity(n)
>    Matrix.scalar(n, 1)
>  end

を

>  def Matrix.identity(n)
>    self.scalar(n, 1)
>  end

に, というより Matrix をはずせって言うわけですよね.

 def Matrix.identity(n)
   scalar(n, 1)
 end

これなら, 変更してもかまいません.
が, 

  Matrix#+   -> Matrix
  Matrix#*   -> Matrix
  Matrix#inv -> Matrix
    :

に関しては, いかんともしがたいので, サブクラスの実装の手間はあまり変わ
らないですが...

__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---

In This Thread