[#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:41458] Re: オブジェクト同士の演算などを実装するには?

From: "Y.Tokutomi" <ytokutomi@...>
Date: 2005-11-02 16:56:15 UTC
List: ruby-list #41458
徳冨です。

こんな感じでどうでしょう?

----
class Cat
   attr_reader(:name)
   SEX = ['M', 'F']
   def initialize(name,age,sex)
       @name = name; @age = age; @sex = sex
   end
   def +(other_cat)
   	Cat.new(@name + other_cat.name, 0, SEX[rand(2)])
   end
   def Cat.fight(cats) # cats は Array
   	winner = cats[rand(cats.size)]
   	return "#{winner.name} の勝ち!"
   end
end

mike = Cat.new("みけ",4.5,"F")
tama = Cat.new("たま",3.8,"M")

child = mike+tama
p child

puts Cat.fight([mike, tama])
----

クラスメソッドの定義はこのあたり。

http://www.ruby-lang.org/ja/man/?cmd=view;name=%A5%AF%A5%E9%A5%B9%A1% 
BF%A5%E1%A5%BD%A5%C3%A5%C9%A4%CE%C4%EA%B5% 
C1#a.a5.af.a5.e9.a5.b9.a5.e1.a5.bd.a5.c3.a5.c9.a4.ce.c4.ea.b5.c1

蛇足ではありますが…。
このケースでは + 演算子を使うより、普通に英単語の名称を付 
けられた方がいいような気がします。あと、Cat.fight も違和感 
が…。(^^;

それでは。

On 2005/11/03, at 1:09, Hideo Konami wrote:

> 小波です.
>
> 次のようなことを実現したいのですが,可能でしょうか?
>
> class Cat
>   def initialize(name,age,sex)
>       @name = name; @age = age; @sex = sex
>   end
>   def hoge
>   end
>   ...
>   ...
> end
>
> mike = Cat.new("みけ",4.5,"F")
> tama = Cat.new("たま",3.8,"M")
>
> というふうにCatクラスを定義して,そのオブジェクト(イン 
> スタンス)
> である mike, tama を生成したとします.
> そのあと,たとえば次のような形でこれらのオブジェクト間の演算
> を定義することはできるでしょうか.
>
> babycat = mike + tama
>
> ここで Cat クラスに属する2個のオブジェクト同士の  
> + の演算は,
> mike と tama の性質から導かれるもので,たとえば上記のよ 
> うに
> して両親の性質をまぜた子猫を作るものとします.
>
> また別にたとえば
>
> puts Cat.fight(mike,tama)
>
> みたいな形で,mike, tama のもつ性質を利用して勝ち負けを 
> 決めて
> "みけの勝ち!" といった出力を得るようにすることはできる
> でしょうか.
>
> mike.fight(tama) という形のメソッドなら簡単なのですが...
>

---------------------------------
-- Y.TOKUTOMI
-- http://d.hatena.ne.jp/Tommy1/
-- http://tommy1969.blogspot.com/

In This Thread