[#34] [Bug] Class#superclass — shugo@... (maeda shugo)
前田です。
[#49] Re: Nil is a subclass of Object? — shugo@... (maeda shugo)
前田です。
[#50] Re: [ruby-list:3596] Module#attr specification (Re: boolean values) — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルです.
前田です。
まつもと ゆきひろです
わたなべです.
[#53] About C struct who has references to ruby objects — shugo@... (maeda shugo)
前田です。
[#58] Re: Nil is a subclass of Object? — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#78] [Bug] Socket#send, Socket#recvfrom — shugo@... (maeda shugo)
前田です。
[#97] Re: meta programming features — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#115] Re: meta programming features — WATANABE Hirofumi <watanabe@...>
わたなべです.
[#117] Re: tail recursion (Re: LaTeX ruby documents) — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
[#121] Re: meta programming features — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
[#127] tracer — keiju@... (Keiju ISHITSUKA)
けいじゅ@いそうろう.日本ラショナルです.
まつもと ゆきひろです
けいじゅ@いそうろう.日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
[#167] argument default value — shugo@... (前田 修吾 / maeda shugo)
前田です。
[#185] Re: [ruby-list:3720] Re: Class#eval [Re: ftplib.rb revision 1.4] — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
けいじゅ@やっと自オフィス.日本ラショナルです.
まつもと ゆきひろです
まつもと ゆきひろです
[#189] include [Re: new sync.rb release] — keiju@... (石塚圭樹 )
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
[#221] '@' in yylex() — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
[#228] How to handle Struct — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
[#232] ruby for mswin32 1.1a1差分 — KIMURA Koichi <kkimura@...>
木村 です。
[#257] [BUG] MLF — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
まつもと ゆきひろです
けいじゅ@日本ラショナルです.
けいじゅ@日本ラショナルです.
[#276] Re: SyslogSendmail class — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#291] illegal here document — shugo@... (前田 修吾 / maeda shugo)
前田です。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
わたなべです.
[#309] [BUG] method index — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#313] ruby 1.1a4 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#330] [BUG] Module#methods — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[ruby-dev:338] Re: virtual class [Re: [Q] [Re: [BUG] method index] ]
けいじゅ@日本ラショナルソフトウェアです.
In [ruby-dev :00336 ] the message: "[ruby-dev:336] Re: virtual class
[Re: [Q] [Re: [BUG] method index] ] ", on Aug/31 01:30(JST)
matz@netlab.co.jp (Yukihiro Matsumoto) writes:
>まつもと ゆきひろです
>|def self.foo
>| ...
>|end
>|
>|の中では, 定数の参照のスコープは仮想クラスにスイッチすべきじゃないんで
>|すかねぇ?
>
>過去のある時点で定数のスコープは静的なものにしようと思ったか
>らです.たしか,ネストしたクラスの問題について考えていた時だっ
>たよなあ.これはこういうものだと思って下さい.
そういわれると, 何もいえないのですが...
class Foo
X = "foo"
end
f = Foo.new
def f.foo
print X
end
f.foo
は, 駄目なんですね... これが静的って意味ですか...
でも, 動的な部分もありますよね? サブクラスとそこで定義されたメソッドで
は, 上位のクラスの定数を参照できますが, これは明らかに動的だと思うんで
すが?
class Foo
X = "foo"
end
class Bar < Foo
def foo
print X
end
end
Bar.new.foo
これだって, 静的であると考えると参照できないはずじゃないですか? この場
合は, BarはFooを含んでいるから参照できるって考えるんですかねえ?
そういえば, 次のプログラムはちゃんと思った通りの動作をしますね.
class Foo
X = "foo"
end
class Bar < Foo
end
b = Bar.new
class << b
def foo
print X, "\n"
end
end
b.foo
class Bar
X = "bar"
end
b.foo
class << b
X = "b"
end
b.foo
=================
foo
bar
b
うーん. これなら納得できます(^^;;;
つまり, 定数の決定は静的スコープで決定されると. で, 実際に参照された時
は,
1. その静的スコープカレントだったクラスの定数
2. その静的スコープカレントだったクラスのスーパクラスの定数
3. その静的スコープでスコープの階層を遡っていく.
ってなっているんですね.
# って, 何度もいわれているか...
特異メソッドはどこでも定義できるので, ちょっと違和感があるだけですね.
たとえば,
class Foo
X = "foo"
end
F = Foo.new
class Bar
X = "bar"
def F.foo
print X, "\n"
end
end
F.foo
=====
bar
ですものね.
# 自己完結メイルだった... まあ, FAQネタになったということで.
なんで, 今な話になったのかな...
以下のメイルでしたね.
In [ruby-dev :00329 ] the message: "[ruby-dev:329] Re: virtual class
[Re: [Q] [Re: [BUG] method index] ] ", on Aug/29 15:04(JST)
matz@netlab.co.jp (Yukihiro Matsumoto) writes:
>まつもと ゆきひろです
>|いえいえ. インスタンス変数は保証しないが, クラス定数は保証して欲しいん
>|ですけど...
>
>そうなんですか? まあ,現状では沿うなっているんで構わないと
>言えば構わないんですが.
>
>|インスタンス変数はclass<<の中でしかアクセスできないので, 別のclass<<で
>|値が変わっても変ではないですが(変数の連続性がない), クラス定数はインス
>|タンスから常にアクセスできますので(変数の連続性がある), class<<毎に値
>|が変わるってのも変ですよね?
>
>クラス定数も class << から end までの間でしか参照できません
>けど.あれ,もしかして
>
> class << self
> Foo = 25
> end
>
> def self.foo
> p Foo
> end
> self.foo
>
>で25が参照できると思っておいでですか? 定数の参照スコープは
>もっと静的です.
class << self
Foo = 25
def foo
p Foo
end
end
self.foo
なら. OKですものね. 途中に
>クラス定数も class << から end までの間でしか参照できません
>けど.あれ,もしかして
という言葉があったので誤解してしまいました... class << ... endで定義さ
れたメソッドからしか参照できないってことですね. まあ, それでも, 仮想ク
ラスのクラス定数が常にアクセスできることには変わりませんから, クラス定
数は常に同じものがアクセスできるとして下さい.
でも, そこまでやるんだったら, 仮想クラスは常に同じクラスであるとした方
が分かりやすいかなあ.....
__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---