まつもと ゆきひろです

In message "[ruby-list:13885] destructive methods (Re:  Re: What is Object in Ruby?)"
    on 99/04/19, GOTO Kentaro <gotoken / math.sci.hokudai.ac.jp> writes:

|>この場合,そのオブジェクトの振る舞いは一切変わらないが,別の
|>オブジェクトの振る舞いが変わってしまう(あるいは大域的な状態
|>が変化する)ものは破壊的でしょうか?
|
|(それは迷っているので消したけど)戻り値だけでなくメソッド
|を使う側から知ることのできるあらゆる副作用も振る舞いの一
|部と考えます。よってあるメソッドが例えば大域変数への代入
|や push を行うなら、そのメソッドは破壊的とみなします。
|# いまひとつ確信してないけど

なるほど,いや,それは一貫性があるので非常に説得力があります.

|>私は私の思いがありますが,ごとけんさんのを先に聞きたいなあ
|># 卑怯もの?
|
|んじゃ、今度はまつもとさんの番ね(^^;

私はそれは「破壊的」ではないと考えています.私ならそれは「副
作用」と呼ぶでしょう.ごとけんさんの「破壊的」の定義はほとん
ど副作用があることと同義なんですよね.

# それではダメと言うわけではない.

では,私の「破壊的」の厳密な定義はなにか,と問われるとちゃん
と答えられないんですよねえ.気分的には「オブジェクト構造を変
更する」というshallowなものを採用したいんですが,実際問題そ
れでは済まないことの方が多いでしょうね.

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