[#17615] substitution at when-clause — Takaaki Tateishi <ttate@...>

立石です.

47 messages 2002/07/01
[#17619] Re: substitution at when-clause — matz@... (Yukihiro Matsumoto) 2002/07/01

まつもと ゆきひろです

[#17621] Re: substitution at when-clause — Takaaki Tateishi <ttate@...> 2002/07/02

At Tue, 2 Jul 2002 02:54:01 +0900,

[#17622] Re: substitution at when-clause — matz@... (Yukihiro Matsumoto) 2002/07/02

まつもと ゆきひろです

[#17624] Re: substitution at when-clause — Takaaki Tateishi <ttate@...> 2002/07/02

At Tue, 2 Jul 2002 13:30:17 +0900,

[#17627] Re: substitution at when-clause — matz@... (Yukihiro Matsumoto) 2002/07/02

まつもと ゆきひろです

[#17630] Re: substitution at when-clause — Takaaki Tateishi <ttate@...> 2002/07/02

立石です.

[#17631] Re: substitution at when-clause — matz@... (Yukihiro Matsumoto) 2002/07/02

まつもと ゆきひろです

[#17635] Re: substitution at when-clause — Takaaki Tateishi <ttate@...> 2002/07/03

立石です.

[#17639] Re: substitution at when-clause — matz@... (Yukihiro Matsumoto) 2002/07/03

まつもと ゆきひろです

[#17644] Re: substitution at when-clause — keiju@... (石塚圭樹) 2002/07/03

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

[#17645] Re: substitution at when-clause — matz@... (Yukihiro Matsumoto) 2002/07/03

まつもと ゆきひろです

[#17647] Re: substitution at when-clause — keiju@... (石塚圭樹) 2002/07/03

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

[#17649] Re: substitution at when-clause — Takaaki Tateishi <ttate@...> 2002/07/03

At Wed, 3 Jul 2002 17:48:58 +0900,

[#17651] Re: substitution at when-clause — keiju@... (石塚圭樹) 2002/07/03

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

[#17730] Re: self in block — masaki <GEC01122@...>

16 messages 2002/07/20

[#17764] Re: self in block — masaki <GEC01122@...>

31 messages 2002/07/22
[#17765] Re: self in block — matz@... (Yukihiro Matsumoto) 2002/07/23

まつもと ゆきひろです

[#17768] Re: self in block — Tanaka Akira <akr@...17n.org> 2002/07/23

In article <1027383423.558649.31176.nullmailer@picachu.netlab.jp>,

[#17769] Re: self in block — matz@... (Yukihiro Matsumoto) 2002/07/23

まつもと ゆきひろです

[#17770] Re: self in block — Tanaka Akira <akr@...17n.org> 2002/07/23

In article <1027404202.545188.1283.nullmailer@picachu.netlab.jp>,

[#17771] Re: self in block — matz@... (Yukihiro Matsumoto) 2002/07/23

まつもと ゆきひろです

[#17772] Re: self in block — Tanaka Akira <akr@...17n.org> 2002/07/23

In article <1027406979.880878.1358.nullmailer@picachu.netlab.jp>,

[#17832] Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG. — nobu.nakada@...

なかだです。

17 messages 2002/07/26
[#17835] Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG. — matz@... (Yukihiro Matsumoto) 2002/07/26

まつもと ゆきひろです

[#17837] Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG. — nobu.nakada@... 2002/07/26

なかだです。

[#17842] Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG. — matz@... (Yukihiro Matsumoto) 2002/07/26

まつもと ゆきひろです

[#17886] line number(Re: Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG.) — nobu.nakada@... 2002/08/02

なかだです。

[#17893] Re: line number(Re: Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG.) — matz@... (Yukihiro Matsumoto) 2002/08/03

まつもと ゆきひろです

[#17897] Re: line number(Re: Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG.) — nobu.nakada@... 2002/08/03

なかだです。

[#17973] Re: line number(Re: Re: [ruby-cvs] ruby: * random.c: replace with Mersenne Twister RNG.) — nobu.nakada@... 2002/08/11

なかだです。

[ruby-dev:17715] Re: self in block

From: Minero Aoki <aamine@...>
Date: 2002-07-19 05:25:11 UTC
List: ruby-dev #17715
あおきです。

  In mail "[ruby-dev:17714] Re: self in block"
    masaki <GEC01122@nifty.ne.jp> wrote:

> 正木です。

> 問題は initialize に渡される block のように、いつどこで呼ばれるかあらかじめ
> 分からない場合で、従来の仕様だと self も不定(大抵は main ですが)で使いようが
> 無いし、変数の scope も問題があります。

すみません、「self が不定」という点がさっぱりわかりません。self
が不定だったらプログラムは書けません。また「たいていは main」は
嘘だと思います。普通のオブジェクト指向なプログラムだったら self
は main 以外のほうが圧倒的に多くなります。

それと「ブロック」はイテレータは含むんですか? 含むとしたら
めちゃくちゃ嫌です。ブロックを定義する側からまったく情報を
渡せなくなるわけで、それこそ使いようがありません。

なんとなく、「関数が欲しい」というのが真の意図のような気が
するのですが……


> 私の(妥協案でない)本音の提案は以下の通りです:
> 
> 従来の仕様から block 内 local 変数をはずす。
> (これは仕様がすっきりするというだけの理由です。)
> 
> 逆に新しい仕様ではすべての local 変数を block 内 local 変数にする。正確には:
> object.method(){<x,...> ...}
> の形のときは local 変数の scope は block 内に限定される。
> self はこれを呼び出した object を指す。

……ということはやっぱりイテレータも入るんでしょうね。
それならやはり「絶対」反対です。

ローカル変数はブロックローカル限定、までは個人的には同意できる
面もありますが、self を変えてしまうのはどうにも理解できません。
self が変わるということは呼べるメソッドからインスタンス変数から
あらゆる環境が変わるということです。self はできるだけ静的に決定
するのが望ましい姿でしょう。

しかも、正木さんのやりたいことはなにも self を変えてしまわなく
とも、(立石さんがおっしゃるように) 別の名前を導入しても可能なの
ですからなおさらです。たとえば caller とかがふさわしいのでは
ないでしょうか。


ただ、いずれにしてもぼくはそういう機能には反対します。

オブジェクトへのリンクを持っているということはメソッドを呼べる
ということです。そしてメソッドを呼ぶというのは「それが必要だ」
という表明です。ましてや言語レベルでリンクを提供するのならば、当
のオブジェクトにとってかなりの関連性や必然性がなければいけない
はずです。ですが caller と callee のオブジェクト同士にそれほど
強い関係や結びつきがあるとは思えません。むしろ勝手に記憶されたく
ない場合のほうが多いのではないでしょうか?
-------------------------------------------------------------------
青木峰郎

In This Thread