[#17615] substitution at when-clause — Takaaki Tateishi <ttate@...>
立石です.
まつもと ゆきひろです
At Tue, 2 Jul 2002 02:54:01 +0900,
まつもと ゆきひろです
At Tue, 2 Jul 2002 13:30:17 +0900,
まつもと ゆきひろです
立石です.
まつもと ゆきひろです
青山です。
立石です.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
At Wed, 3 Jul 2002 17:48:58 +0900,
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#17625] Re: Getting CGI arguments as scalars — Wakou Aoyama <wakou@...>
青山です。
[#17662] update irb to cvs repository — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
In article <200207041003.TAA06746.keiju@ishitsuka.com>,
けいじゅ@日本ラショナルソフトウェアです.
[#17676] generation GC — Minero Aoki <aamine@...>
あおきです。
[#17706] self in block — masaki <GEC01122@...>
[#17714] Re: self in block — masaki <GEC01122@...>
[#17722] Re: self in block — masaki <GEC01122@...>
[#17725] Re: self in block — masaki <GEC01122@...>
まつもと ゆきひろです
In article <1027176584.577546.14709.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
At Sun, 21 Jul 2002 01:10:02 +0900,
まつもと ゆきひろです
[#17730] Re: self in block — masaki <GEC01122@...>
At Sat, 20 Jul 2002 21:27:58 +0900,
高橋征義です。
けいじゅ@日本ラショナルソフトウェアです.
[#17764] Re: self in block — masaki <GEC01122@...>
まつもと ゆきひろです
In article <1027383423.558649.31176.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1027404202.545188.1283.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1027406979.880878.1358.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1027409151.187595.1406.nullmailer@picachu.netlab.jp>,
前田です。
In article <87bs8xkfqr.wl@studly.priv.netlab.jp>,
前田です。
[#17774] Re: self in block — masaki <GEC01122@...>
[#17832] Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG. — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#17840] Re: new mathn [Re: Rational#to_int ← String#center] — keiju@... (石塚圭樹)
けいじゅ@日本ラショナルソフトウェアです.
[#17851] undef_method ? — Shin-ichiro HARA <sinara@...>
原です。
[#17855] non-blocking IO — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
[#17867] parenthesize argument(s) for future version — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
[ruby-dev:17667] Re: blocks and local variables
こんばんは。sheepman です。
On Mon, 17 Jun 2002 21:43:25 +0900
matz@ruby-lang.org (Yukihiro Matsumoto) wrote:
> まつもと ゆきひろです
>
> In message "[ruby-dev:17480] Re: blocks and local variables"
> on 02/06/17, Shin Nishiyama <shin@xtal.tf.chiba-u.ac.jp> writes:
>
> 同じアイディアはすでに提案されていますが、ネストの問題がある
> ので、ブロックローカルであることがわかったとしてもかならずし
> もうれしくないかも、という点で決定打になっていません。
>
ブロックローカル変数名に固有のシンタックスを付与する案の
ひとつとして、変数の後ろに @ を付けるというのはどうでしょうか。
a=1
hoge(){|i|
val@ = a
.....
}
気持ちとしては、
@hoge がある程度ひろい範囲からのアクセスを可能にし、
@@bar がさらにひろい範囲からのアクセスを可能にするので
逆に foo@ はせまい範囲からのアクセスを意味する気がしないでもない。
1.val@ は常にブロック固有の変数。
hoge(){|i|
val@ = 1
foo(){
val@ = 3
}
puts val@ #=> 1
}
2.ネストした場合に上のブロックの変数にアクセスするには
val@1 (1つ上のブロックの変数)、val@2 (2つ上のブロックの変数)
val@@ (上に順番に登っていって最初に一致する変数)
hoge(){|i|
val@ = 1
foo(){
bar(){
val@2 = 3
}
}
puts val@ #=> 3
}
hoge(){|i|
val@ = 1
foo(){
bar(){
puts val@@ #=> 1
}
}
}
hoge(){|i|
val@ = 1
foo(){
x = proc{puts val@@}
@val = 3
x.call #=> 1 (どうするのが良いんでしょう?)
}
}
val@1 や val@2 は見た目もあんまりなので、val@@ を
使うこと推奨ということで。
#ブロックローカルな変数を最初に<x, y;a, b>で宣言するという案で
#個人的に懸念することは宣言による新しい変数の生成と
#代入による新しい変数の生成がブロックの中で混在して、
#ソースが見にくくなってしまうのではないかということです。
それでは。
--
sheepman / TAMURA Takashi
sheepman@tcn.zaq.ne.jp http://www.tcn.zaq.ne.jp/sheepman/
Key fingerprint = 4E13 FE38 CD73 48D3 38AE 00EE 9E28 F98B D569 848E