[#50] Re: [ruby-list:3596] Module#attr specification (Re: boolean values) — keiju@... (石塚圭樹 )

けいじゅ@日本ラショナルです.

11 messages 1997/08/05

[#121] Re: meta programming features — keiju@... (石塚圭樹 )

けいじゅ@日本ラショナルです.

18 messages 1997/08/13
[#122] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/08/13

まつもと ゆきひろです

[#126] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/08/14

けいじゅ@日本ラショナルです.

[#128] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/08/15

まつもと ゆきひろです

[#127] tracer — keiju@... (Keiju ISHITSUKA)

けいじゅ@いそうろう.日本ラショナルです.

36 messages 1997/08/14
[#129] Re: tracer — matz@... (Yukihiro Matsumoto) 1997/08/15

まつもと ゆきひろです

[#131] Re: tracer — keiju@... (石塚圭樹 ) 1997/08/15

けいじゅ@いそうろう.日本ラショナルです.

[#140] Re: tracer — matz@... (Yukihiro Matsumoto) 1997/08/15

まつもと ゆきひろです

[#144] Re: tracer — keiju@... (石塚圭樹 ) 1997/08/16

けいじゅ@日本ラショナルです.

[#150] Re: tracer — matz@... (Yukihiro Matsumoto) 1997/08/18

まつもと ゆきひろです

[#155] Re: tracer — keiju@... (石塚圭樹 ) 1997/08/18

けいじゅ@日本ラショナルです.

[#156] Re: tracer — matz@... (Yukihiro Matsumoto) 1997/08/18

まつもと ゆきひろです

[#162] ruby -r module [Re: tracer] — keiju@... (石塚圭樹 ) 1997/08/19

[#164] Re: ruby -r module [Re: tracer] — WATANABE Hirofumi <watanabe@...> 1997/08/19

わたなべです.

[#185] Re: [ruby-list:3720] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 )

26 messages 1997/08/20
[#186] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/20

[#193] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/20

けいじゅ@日本ラショナルです.

[#194] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/20

まつもと ゆきひろです

[#195] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/20

けいじゅ@日本ラショナルです.

[#200] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/20

まつもと ゆきひろです

[#207] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/22

けいじゅ@日本ラショナルです.

[#209] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/22

まつもと ゆきひろです

[#211] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/22

けいじゅ@日本ラショナルです.

[#212] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/22

まつもと ゆきひろです

[#213] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/22

[#214] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/22

まつもと ゆきひろです

[#215] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/22

[#217] Re: Class#eval [Re: ftplib.rb revision 1.4] — matz@... (Yukihiro Matsumoto) 1997/08/22

まつもと ゆきひろです

[#218] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 ) 1997/08/22

けいじゅ@日本ラショナルです.

[#257] [BUG] MLF — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルです.

24 messages 1997/08/26
[#259] Re: [BUG] MLF — matz@... (Yukihiro Matsumoto) 1997/08/26

まつもと ゆきひろです

[#261] Re: [BUG] MLF — keiju@... (石塚圭樹 ) 1997/08/26

けいじゅ@日本ラショナルです.

[#262] Re: [BUG] MLF — keiju@... (石塚圭樹 ) 1997/08/26

けいじゅ@日本ラショナルです.

[#263] Re: [BUG] MLF — matz@... (Yukihiro Matsumoto) 1997/08/26

まつもと ゆきひろです

[#264] Re: [BUG] MLF — keiju@... (石塚圭樹 ) 1997/08/26

けいじゅ@日本ラショナルです.

[#267] Re: [BUG] MLF — matz@... (Yukihiro Matsumoto) 1997/08/26

まつもと ゆきひろです

[#268] Re: [BUG] MLF — keiju@... (石塚圭樹 ) 1997/08/26

けいじゅ@日本ラショナルです.

[#269] Re: [BUG] MLF — matz@... (Yukihiro Matsumoto) 1997/08/26

まつもと ゆきひろです

[#270] Re: [BUG] MLF — keiju@... (石塚圭樹 ) 1997/08/26

けいじゅ@日本ラショナルです.

[#291] illegal here document — shugo@... (前田 修吾 / maeda shugo)

前田です。

15 messages 1997/08/27
[#293] Re: illegal here document — matz@... (Yukihiro Matsumoto) 1997/08/28

まつもと ゆきひろです

[#309] [BUG] method index — keiju@... (Keiju ISHITSUKA)

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

16 messages 1997/08/28
[#310] Re: [BUG] method index — matz@... (Yukihiro Matsumoto) 1997/08/28

まつもと ゆきひろです

[#311] Re: [BUG] method index — keiju@... (石塚圭樹 ) 1997/08/28

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

[#312] Re: [BUG] method index — matz@... (Yukihiro Matsumoto) 1997/08/28

まつもと ゆきひろです

[#316] [Q] [Re: [BUG] method index] — keiju@... (石塚圭樹 ) 1997/08/28

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

[#320] Re: [Q] [Re: [BUG] method index] — matz@... (Yukihiro Matsumoto) 1997/08/29

まつもと ゆきひろです

[#324] virtual class [Re: [Q] [Re: [BUG] method index] ] — keiju@... (石塚圭樹 ) 1997/08/29

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

[ruby-dev:133] Re: meta programming features

From: keiju@... (石塚圭樹 )
Date: 1997-08-15 06:02:16 UTC
List: ruby-dev #133
けいじゅ@日本ラショナルです.

In [ruby-dev :00128 ] the message: "[ruby-dev:128] Re: meta
programming features ", on Aug/15 10:27(JST) matz@netlab.co.jp
(Yukihiro Matsumoto) writes:

>まつもと ゆきひろです

>|実は, クラスは2種類のクラス変数を持てるんですね...
>|
>|* Foo::Var
>|* Foo.type::Var

>|です. 同じ名前だと前者が優先されているみたいですね? 

>ちゃいます.前者だけがクラスFooのクラス変数です.後者はクラ
>スFooのメタクラスのクラス定数です.ですから後者は

ええ. それは分かってますって. 

>  Foo::Var

これはそうですね. 

>の形式では参照できませんし.そもそもFooから参照できません.

そんなことないみたいですよ.

class Foo
end

class << Foo
  X = "Foo.type"
  def Foo.foo
    print X, "\n"
  end
end

Foo.foo
Bar.foo
====
Foo.type

とでます. と思いましたが...

class Bar
end

class << Foo
  X = "Foo.type"

  def Bar.foo
    print X, "\n"
  end
end

Bar.foo
====
Foo.type

となりますね... Foo.foo, Bar.fooがFooのメタクラスのコンテキストで定義
されたので定数が参照できていただけですね...

>|# 何か話しが複雑になっているなあ...
>なんかわざわざ複雑にしているような気もしますが….

(++;;;

>さて,長いメールの内容は引用せずにコメントだけつけると:

順番を入れ替えますね.

>  * 特異クラスに定数を定義したり,特異クラスのインスタンス変
>    数にアクセスできても便利なことはない
>
>ことが気になります.もっとも特異クラスは定数とインスタンス変
>数に関して通常クラスと共有することにするという手もありますが.

全然便利でないといわれると困るんですが... 

私が使っている例としては, 個別のインスタンスにクラスが関連している場合
に, 特異クラスの定数を使っています. 1.0ではクラス生成に名前(定数)が必
要なので, そうしないとクラス名を一意にする必要が出てきて, プログラムが
複雑になるからです.

# 1.1では名前なしクラスができるのでこの問題はなくなるのかも知れません
# が... でも, クラスは大文字でアクセスしたかったりして(^^;;;

ただ, foo.evalの代わりに foo.type.evalやclass << fooを使えばいいので,
Object#evalの仕様とはそれほど関係ないですが...

>  * foo.evalの仕様を public な使い方を想定して定義Bを提案し
>    ているようだが,関数的なevalの使い方を考えると定義Aの方
>    が自然である(と松本が主張した)ことを考慮していない

そうでしたね. 確かに

  eval "def func ..."

と

  foo.eval "def func..."

では, だいぶ雰囲気が違う...

ただ, 1ついえることは, すでに 特異メソッドfoo.funcが定義されている時に

foo.eval "def func .."

が特異メソッドの再定義にならないのもおかしいと思いませんか? fooから見
たメソッドfuncの定義を行いたいわけですから...

とはいえ, 常に特異メソッドや特異クラスの定数が定義されるのも, あまり嬉
しくないのも確かですね...

松本氏のいう通り, 基本は関数evalの動作が望ましいと思うようになったので
すが... 

evalの動作をオプション引数で変えられるというのも変ですかねえ...

eval "def foo.func..."で特異メソッドの定義はできるので, 少なくとも, す
でにそういう名前の特異メソッドが定義されているかどうかを判断するメソッ
ドは欲しいかなあ..

>|そうですか. それでは, さらに, MPF-APIのリクエストをします:
>
>なんか,これらは美しくない(趣味に合わない)ので,ちょっと検討
>してみます.

そうですか... そんなに趣味が悪かったですか...

>|ところで, 特異クラスが見えるようになると, そのサブクラスも作れるように
>|なるんですかね?
>
>できていけない理由はないと思ったので,できます.禁止した方が
>良いですか?

そういうわけでもないんですけど...

さらに, 特異クラスから新たにインスタンスを作ることもできるんですね.

objの特異クラスはobjのシングルトンクラスになっているというイメージは間
違っているんですね...

こうなってくると特異クラスって何だろう? って思いはじめてきました... 特
異クラスはあまり見せない方が良いのかも知れませんね...

>|# なんだか, 話しが複雑だなあ...

>なんかわざわざ複雑にしているような気もしますが….^^;;;
># ルールを積み重ねればなんだって複雑にできますよね

うーん. rubyの柔軟性を表しているというか何というか... 

__
..........................................石塚 圭樹@日本ラショナル...
----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---

In This Thread