原です。

In message "[ruby-list:13963] Re: destructive methods (Re:  Re: What is Object in Ruby?)"
    on 99/04/21, GOTO Kentaro <gotoken / math.sci.hokudai.ac.jp> writes:
|
|ごとけんです

|>その手のものは全て etc... で undef していると思って下さい。(^^;
|
|なる。んじゃ非破壊的です。呼出側で決して違いを知ることが
|できなければ破壊的とは考えません。

なるほど徹底しているのですね。

|>|でわ質問:「IO#gets は ==-破壊的ですか??」
|>
|>素朴に答えると、IO#== は Object#== をそのまま使っているの
|>で id だけで判断されるから「==-破壊的」でない。それが気に
|>入らないなら自分で == を定義し直して下さい、って所かしら。
|
|なるほど。しかしこれも実行不可能な概念なのですね。実行後
|のオブジェクトと実行前のオブジェクトは比べられないから。

そうなのです。そこがかえって面白いと思うのですが。在るもの
が変化したことを認識するには過去の状態に対する記憶が必要で
あるのだから。

そこでまた思いついたのですが、コピーメソッドαと同値判定
メソッドβをペアにして「α/β-破壊的」という概念を作る。
これは具体的に書けますね。すると

  Array の push, []= は dup/== -破壊的である

と表現できる。