From: matz@... (Yukihiro Matsumoto) Date: 1999-04-20T11:06:53+09:00 Subject: [ruby-list:13899] Re: destructive methods (Re: Re: What is Object in Ruby?) まつもと ゆきひろです In message "[ruby-list:13885] destructive methods (Re: Re: What is Object in Ruby?)" on 99/04/19, GOTO Kentaro writes: |>この場合,そのオブジェクトの振る舞いは一切変わらないが,別の |>オブジェクトの振る舞いが変わってしまう(あるいは大域的な状態 |>が変化する)ものは破壊的でしょうか? | |(それは迷っているので消したけど)戻り値だけでなくメソッド |を使う側から知ることのできるあらゆる副作用も振る舞いの一 |部と考えます。よってあるメソッドが例えば大域変数への代入 |や push を行うなら、そのメソッドは破壊的とみなします。 |# いまひとつ確信してないけど なるほど,いや,それは一貫性があるので非常に説得力があります. |>私は私の思いがありますが,ごとけんさんのを先に聞きたいなあ |># 卑怯もの? | |んじゃ、今度はまつもとさんの番ね(^^; 私はそれは「破壊的」ではないと考えています.私ならそれは「副 作用」と呼ぶでしょう.ごとけんさんの「破壊的」の定義はほとん ど副作用があることと同義なんですよね. # それではダメと言うわけではない. では,私の「破壊的」の厳密な定義はなにか,と問われるとちゃん と答えられないんですよねえ.気分的には「オブジェクト構造を変 更する」というshallowなものを採用したいんですが,実際問題そ れでは済まないことの方が多いでしょうね. まつもと ゆきひろ /:|)