ごとけんです

In message "[ruby-list:13883] destructive methods (Re:  Re: What is Object in Ruby?)"
    on 99/04/19, Yukihiro Matsumoto <matz / netlab.co.jp> writes:

>|なるほどお。そういう立場もわかります。ちなみに破壊的とは
>|何かに対する今の俺的解答はこう:それをやるのとやらないの
>|ではその後のオブジェクトの振る舞いが違う。
>
>なるほどお.それは納得できます.
>
>この場合,そのオブジェクトの振る舞いは一切変わらないが,別の
>オブジェクトの振る舞いが変わってしまう(あるいは大域的な状態
>が変化する)ものは破壊的でしょうか?

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

>私は私の思いがありますが,ごとけんさんのを先に聞きたいなあ
># 卑怯もの?

んじゃ、今度はまつもとさんの番ね(^^;

>ちなみにRubyは破壊的なメソッドに ! を付けるのではなく,「よ
>り破壊的なメソッド」に ! を付けることで,この議論から逃げて
>います.

こういうズルさは実は好きです。

-- gotoken