まつもと ゆきひろです

In message "[ruby-list:12643] Re: alternative name of iterator"
    on 99/03/08, moochan <moochan / ss.hitachizosen.co.jp> writes:

|ですね.そして,Smalltalk のblock は
|block ← value(←はblockオブジェクトにvalueメッセージを送るイメージ)
|で評価され,必要なら何度も繰り返し評価されますすが,Rubyの場合,定義し
|た場所のみで実行されると言った固定的なイメージがあります.

Proc.newなどでオブジェクト化されてはじめてブロックオブジェク
トになりますからね.が,「必要なら何度も繰り返し評価されま
す」ってのはどちらも同じでしょう?

|さらに,私の感覚では,Rubyの場合,オブジェクトの内臓を手でえぐりだして
|処理し元へ戻すと言うような,あまり美しいイメージを持っていません.

ふーむ,「内蔵をえぐりだす」とはおだやかでないイメージですね.
それってRubyのブロックがそういうイメージがあるってことですか?

|ただ,長所と言うか特徴としては,レシーバのクラス定義へ戻らなくてよい,

これはSmalltalkもRubyも両方そうなのでは? 両方とも現在のコン
テキストを保持してますから.ま,Rubyには例外的にコンテキスト
を変更してブロックを評価するメソッドがいくつかありまして,そ
れらにはなんとなく「いやがるブロックをむりやり...」というよ
うなおだやかでないイメージがつきまといますが.

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