[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>

ruby-1.1b9_08 (07 からみたいですが)での話です。

15 messages 1998/04/08
[#7358] Re: Q: jcode.rb tr(String + nil) — matz@... (Yukihiro Matsumoto) 1998/04/08

まつもと ゆきひろです

[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

19 messages 1998/04/08
[#7384] Re: [Q] Thread — keiju@... (Keiju ISHITSUKA) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7385] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1998/04/09

まつもと ゆきひろです

[#7391] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7471] scope — Wakou Aoyama <wakou@...>

青山です。

22 messages 1998/04/15
[#7474] Re: scope — WATANABE Hirofumi <watanabe@...> 1998/04/15

わたなべです.

[#7475] Re: scope — Wakou Aoyama <wakou@...> 1998/04/15

青山です。

[#7500] List on List — WATANABE Hirofumi <watanabe@...>

わたなべです.

26 messages 1998/04/15
[#7501] Re: List on List — matz@... (Yukihiro Matsumoto) 1998/04/15

まつもと ゆきひろです

[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>

荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。

13 messages 1998/04/15

[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>

えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった

29 messages 1998/04/16
[#7601] Re: How to write Perl's `@a[@b] = @c' in ruby — WATANABE Hirofumi <watanabe@...> 1998/04/17

わたなべです.

[#7614] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro HARA <sinara@...> 1998/04/17

原です。

[#7626] Re: How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...> 1998/04/19

From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>

[#7628] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro Hara <sinara@...> 1998/04/19

原です。

[#7659] iteration with index (Re: How to write Perl's `@a[@b] = @c' in ruby) — shugo@... (Shugo Maeda) 1998/04/20

前田です。

[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>

原です。

32 messages 1998/04/21
[#7672] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/21

まつもと ゆきひろです

[#7674] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7675] Re: How to install beta versions — WATANABE Tetsuya <tetsu@...> 1998/04/21

>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:

[#7677] Re: How to install beta versions — Shin-ichiro HARA <sinara@...> 1998/04/21

原です。

[#7679] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7690] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/21

From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>

[#7700] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7710] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/22

From: matz@netlab.co.jp (Yukihiro Matsumoto)

[#7711] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7720] Re: How to install beta versions — chisaka@... 1998/04/23

[#7721] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/24

まつもと ゆきひろです

[#7724] Re: How to install beta versions — NAGAI Hidetoshi <nagai@...> 1998/04/25

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

[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>

きくたにです。

27 messages 1998/04/26
[#7730] mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/26

ごとけんです

[#7738] Re: mail index sort by From: — Kikutani Makoto <kikutani@...> 1998/04/27

きくたにです。

[#7757] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[#7758] Re: mail index sort by From: — akira yamada / やまだあきら <akira@...> 1998/04/28

[#7760] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[ruby-list:7509] クラスの変更

From: Mitsuru Ogino <ogino@...>
Date: 1998-04-15 11:07:30 UTC
List: ruby-list #7509
荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。

大変馬鹿なことを考えているような気がしますが、あるオブジェクトが、自分自
身のクラスを変更することというのは可能なのでしょうか?

# Java や C++ など、変数が型を持っていれば明らかにだめだと分かりますが。

オブジェクト指向というものが良く分からないのです。


--- たとえば ---
class Dog
	# 一般的なこと
end

class LargeDog < Dog
	def bark
		print "ばうばう\n"
	end
end

class LittleDog < Dog
	def bark
		print "きゃんきゃん\n";
	end
	def grow_up
		# ここで何か良い方法?
	end
end

john = LittleDog.new
john.bark
john.grow_up
john.bark
--- ここまで ---

の結果が
---
きゃんきゃん
ばうばう
---

となるような手です。それとも、私はそもそも無意味な(または邪悪な/気持ち悪
い)ことを考えているのでしょうか?


何を考えているのかというと、あるプログラムでデータの群を扱いたいのですが、
このデータは通常はファイルにテキストデータで書かれています。そしてテキス
トファイルからデータを抽出したり、データからテキストを生成するのには、比
較的コストがかかるとします。

これを読み込んでオブジェクトを生成して行こうと思うのですが、毎回(CGIです)
全データを読むのは効率が悪いので、改善したいのです。そこで、
1) ファイル上にあって、メモリ上に無いデータ
2) ファイル上にあって、メモリ上に読み込まれているデータ
3) ファイル上にあるが、メモリ上で更新されているデータ
4) メモリ上にのみあり、新規にファイルを作成しないと保存できないデータ
というサブクラスを作成して扱えば、プログラム上で意識することなく、あるデー
タを参照した時点で、1)から 2)へ移行し、データを変更すれば 3)へ変化すると
いう方法を思い付いたのです。これが、そもそもの失敗なのかもしれませんが。


ひとつ思い付いたのは、ruby ではオブジェクト毎にメソッドを変更できるような
ので、これを利用すればクラスが変更されるのとは違いますが、似たような効果
はでるのではないかと思いました。しかし効率については?です。


実は上記のものを perl で bless し直すといういかにも邪悪そうな方法で実現し
てしまったのですが、もっときれいにできないかと考え出したのが発端です。


まとまりのない文章になりましたが、よろしくお願いいたします。


---
荻野 充(おぎの みつる) ... 「萩」にあらず
名古屋大学消費生活協同組合
ogino@coop.nagoya-u.ac.jp


In This Thread

Prev Next