まつもと ゆきひろです

In message "[ruby-list:28295] Re: argument to instance_eval block"
    on 01/02/26, "DP." <program-zero / ma4.seikyou.ne.jp> writes:

| 確かに、どちらにしろ proc {} のところで引数が消えてしまいますね。
| うーん、やっぱり self を引数として渡してくるという動作は納得できません。
|既に self は、そのイテレタの中に self として導入されているのですから、
|(おそらく instance_eval 自体それが目的でしょうし、)やはりここは
|引数ナシにしてくれた方が自然だと思います。

yieldには引数(というかブロックパラメータ)ナシというのは無い
んです。

|>その場合には instance_eval で
|>はない別の名前が必要だよなあ、というところで止まってます。
|
| instance_yield ではダメでしょうか?

うーん、どうなんでしょう?

| しかし、 instance_eval を使って、外部のイテレータの中から直接内部の
|インスタンス変数等の内部名を使用してもらうというのは、オブジェクト指向
|としてはあまり適切でない設計になるのかも知れません。ちゃんと隠蔽して
|メソッドだけを使わせるなら例えば
|
|インスタンス内からの呼び出し: yield self,arg1,arg2
|イテレータ定義: do |this,arg1,arg2| this.method ...

もうちょっと説明していただけませんか?

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