[#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:7517] Re: クラスの変更

From: keiju@... (石塚圭樹 )
Date: 1998-04-15 13:47:01 UTC
List: ruby-list #7517
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :7509 ] the message: "[ruby-list:7509] クラスの変更 ",
on Apr/15 20:07(JST) Mitsuru Ogino writes:

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

現在のところrubyでは不可能ですね. 

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

それほど邪悪ではないと思いますよ. 似たような機能はsmalltalkも用意して
ありますし, CLOSもあるともいますし, C++ベースのオブジェクト指向データ
ベースでもあります(永続オブジェクトのクラスの変更ですが...)

ただ, 用途が違うことも確かですけど...

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

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

実は, これとほとんど同じことをo_dbmで実現しています(contribにあります). 
o_dbmでは通常のファイルではなくdbmファイルを使っていますが...

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

メソッドを変更するのではなくて, アクセサをうまく定義すれば実現できると
思います.

以下はあるオブジェクトにインスタンス変数単位にデータが入っている場合で
す.

  class Foo
    def intialize
      @dirtys = {}
    end
  
    def foo
      return @foo if @foo
      ファイルからの読み込み
    end

    def foo=(value)
      @foo = value
      @dirtys["@foo"] = value
    end

    def update
      for iv, value in @dirtys
        valueをファイルに書き込む
      end
    end
  end

オブジェクト単位に更新を管理したければ, o_dbmで使った技法がそのまま使
えるでしょう.

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

perlは良く知らないんだけどblessって?

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@rational.com <<---

In This Thread