[#3305] Observable#notify_observers — shugo@... (maeda shugo)

前田です。

22 messages 1997/07/09

[#3329] meta programming features — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

44 messages 1997/07/11
[#3330] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/11

けいじゅ@今はフリー(^^;;;です.

[#3332] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/11

まつもと ゆきひろ%最終出社日です

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

けいじゅ@今はフリー(^^;;;です.

[#3343] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/14

まつもと ゆきひろです

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

けいじゅ@今はフリー(^^;;;です.

[#3346] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/14

まつもと ゆきひろです

[#3349] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/15

けいじゅ@今はフリー(^^;;;です.

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

まつもと ゆきひろです

[#3353] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/15

けいじゅ@今はフリー(^^;;;です.

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

まつもと ゆきひろです

[#3361] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/16

けいじゅ@今はフリー(^^;;;です.

[#3365] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/16

まつもと ゆきひろです

[#3366] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/16

けいじゅ@今はフリー(^^;;;です.

[#3391] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/18

まつもと ゆきひろです

[#3398] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/19

けいじゅ@今はフリー(^^;;;です.

[#3401] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/19

まつもと ゆきひろです

[#3406] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/22

けいじゅ@今はフリー(^^;;;です.

[#3410] Re: meta programming features — matz@... (Yukihiro Matsumoto) 1997/07/22

まつもと ゆきひろです

[#3415] Re: meta programming features — keiju@... (石塚圭樹 ) 1997/07/23

けいじゅ@今はフリー(^^;;;です.

[#3375] Exception — keiju@... (Keiju ISHITSUKA)

けいじゅ@今はフリー(^^;;です.

19 messages 1997/07/17
[#3383] Re: Exception — matz@... (Yukihiro Matsumoto) 1997/07/18

まつもと ゆきひろです

[#3388] Re: Exception — keiju@... (石塚圭樹 ) 1997/07/18

けいじゅ@今はフリー(^^;;;です.

[#3392] Re: Exception — matz@... (Yukihiro Matsumoto) 1997/07/18

まつもと ゆきひろです

[#3403] sorry for ruby-list trouble — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

18 messages 1997/07/22
[#3404] Re: sorry for ruby-list trouble — keiju@... (石塚圭樹 ) 1997/07/22

けいじゅ@今はフリー(^^;;;です.

[#3408] Re: sorry for ruby-list trouble — matz@... (Yukihiro Matsumoto) 1997/07/22

まつもと ゆきひろです

[#3414] Re: sorry for ruby-list trouble — keiju@... (石塚圭樹 ) 1997/07/23

けいじゅ@今はフリー(^^;;;です.

[#3420] Re: sorry for ruby-list trouble — matz@... (Yukihiro Matsumoto) 1997/07/23

まつもと ゆきひろです

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

けいじゅ@今はフリー(^^;;です.

44 messages 1997/07/24
[#3444] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1997/07/24

まつもと ゆきひろです

[#3455] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1997/07/24

けいじゅ@今はフリー(^^;;;です.

[#3461] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1997/07/25

まつもと ゆきひろです

[#3464] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1997/07/25

けいじゅ@今はフリー(^^;;;です.

[#3483] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1997/07/25

まつもと ゆきひろです

[#3528] Re: [Q] Thread — shugo@... (maeda shugo) 1997/07/28

前田です。

[#3537] Re: [Q] Thread — shugo@... (maeda shugo) 1997/07/29

前田です。

[#3542] Re: [Q] Thread — shugo@... (maeda shugo) 1997/07/30

前田です。

[ruby-list:3320] Re: meta programings [Re:exceptions (Re: Ver 1.1 [Re: Matrix])]

From: matz@... (Yukihiro Matsumoto)
Date: 1997-07-10 08:38:38 UTC
List: ruby-list #3320
まつもと ゆきひろです

In message "[ruby-list:3319] Re: meta programings [Re:exceptions (Re: Ver 1.1 [Re: Matrix])]"
    on 97/07/10, 石塚圭樹 <keiju@bc.mbn.or.jp> writes:

|けいじゅ@今はフリー(^^;;;です. 

|なかなか使いやすそうですね. ただ, 先の context-class が指定できないの
|がローカルクラスを作る時面倒です. 

っていうか,Class.new/Module.newは定数を定義しないので
context-classというのは存在しません.戻り値として与えられる
クラス(あるいはモジュール)を定数なり変数なりに代入してくださ
いませ.定義部はイテレータブロックを使っているのでバインディ
ングは変更できません.

|  module A
|    ...
|  end
|
|の Aは, モジュールが代入された変数でもいいんですよね? つまり,
|
|  a = Foo::Bar::Baz # あるモジュール
|  module a
|    ...
|  end
|
|も OK? それなら問題ないかなあ... 

だめです.Aはかならず定数でなければなりません.Foo::Bar::Baz
に機能を追加したければ

  module Foo
    module Bar
      moduel Baz
      end
    end
  end

とするしかないですね.

|>あと,トップレベルでは自動的にprivateになる仕様もこういう時
|>には面倒でした.
|
|なにがでしたっけ??

トップレベル(class/moduleの外)でdefするとprivate methodにな
ります.これはトップレベルでの定義されるのは関数(的メソッド)
であろう,ということからです.普段は確かにそうなんですけど,
こういう時は不便ですよね.

|定数はともかく, メソッド定義は関数的でないと使いづらい場合も多いと思い
|ます. とくに, 動的にコードを生成する時には.

動的にコードを生成する? lispじゃないんだから.

|ここまで話しが進んだので, 他のAPIのリクエストも出しましょう.
|
|  Module#def_method(name, source)
|    メソッドを定義する.

sourceって文字列なんですか? どういう感じなんだろう?

|  Module#class_variables
|    クラス変数の一覧

クラス定数ですよね.Module#constantsかしら?

|  Module#class_variable_value(name)
|    クラス変数の値

Module@constant_value(name)かな?

|  Module#class_variable_value(name, value)
|    クラス変数の値を設定する

Module@constant_value(name)=valueでは?

| (Module#instance_variables
|    インスタンス変数の一覧. 必要か?)

オブジェクト毎に違うわけですから,Moduleとしては得られないで
しょう.

|  Module#includes
|    インクルードモジュールの一覧を返す.

これ,現在の実装では情報を持っていません.実装するのはちょっ
と面倒ですねえ.

|  Object#methods
|    メソッドと(private/public)の組みの一覧を返す.

これだとModule/Classそのもののmethodを取れませんね.重複しちゃ
うから.

|  Object#extends
|    エクステンドモジュールの一覧を返す.

これも情報が取ってないです.どうしよう.

|# あと, undef系があるかな...

まあ,よいですけど….なんか,ここで既に大げさで(完全性は満
たしているかも知れませんが),rubyらしくない気がしてます.

|あと, 松本氏はいやがるかも知れませんが,
|
|  Module#methods_sources
|    メソッドと(private/public)とソースコードの組みの一覧を返す. 
|  Object#methods_source
|    メソッドと(private/public)とソースコードの組みの一覧を返す.
|
|があるかな. 

いやがるもなにも,どうやって実装するんですか? さすがにMOPの
ような普段使わない機能のためにメソッド毎のソースを保存して普
段の効率を落す気は無いですし,それ以外の方法って思い付かない
ですし.それにCで実装されているメソッドにはソースは無いです
よね.

|あと, APIとしては, Object#instance_variables ではインスタンス変数を表
|す特別なオブジェクトを返す方法もありますね. そうすると,
|Object#instance_variable_valueはいらなくなって,
|InstanceVariable#value みたいなメソッドが必要になりますね(私個人として
|は, こっちのインターフェイスの方が好きなのですが...). あと, イテレータ
|とする方法もあるかな?
|
|object.instance_variables do
|  |name, access, value|
|  ...
|end
|
|イテレータにすると値まで取り出せるわけですね.

インスタンス変数のaccessってなに?

最終的な印象としてはちょっと抵抗があるというのが事実です.ま
あ,とりあえずは抵抗の無い

  Module#constants
  Object#methods

くらいを導入しようかなあ.あ,でもクラスに対してmethodsって
聞いた時にはクラスオブジェクトの知っているメソッドではなく,
クラスインスタンスの知っているメソッドを返して欲しいなあ.

				まつもと ゆきひろ /:|)

In This Thread