From: matz@... (Yukihiro Matsumoto) Date: 1999-03-08T18:50:55+09:00 Subject: [ruby-list:12644] Re: alternative name of iterator まつもと ゆきひろです In message "[ruby-list:12643] Re: alternative name of iterator" on 99/03/08, moochan writes: |ですね.そして,Smalltalk のblock は |block ← value(←はblockオブジェクトにvalueメッセージを送るイメージ) |で評価され,必要なら何度も繰り返し評価されますすが,Rubyの場合,定義し |た場所のみで実行されると言った固定的なイメージがあります. Proc.newなどでオブジェクト化されてはじめてブロックオブジェク トになりますからね.が,「必要なら何度も繰り返し評価されま す」ってのはどちらも同じでしょう? |さらに,私の感覚では,Rubyの場合,オブジェクトの内臓を手でえぐりだして |処理し元へ戻すと言うような,あまり美しいイメージを持っていません. ふーむ,「内蔵をえぐりだす」とはおだやかでないイメージですね. それってRubyのブロックがそういうイメージがあるってことですか? |ただ,長所と言うか特徴としては,レシーバのクラス定義へ戻らなくてよい, これはSmalltalkもRubyも両方そうなのでは? 両方とも現在のコン テキストを保持してますから.ま,Rubyには例外的にコンテキスト を変更してブロックを評価するメソッドがいくつかありまして,そ れらにはなんとなく「いやがるブロックをむりやり...」というよ うなおだやかでないイメージがつきまといますが. まつもと ゆきひろ /:|)