Shiro Kawai
shiro****@lava*****
2003年 1月 14日 (火) 19:44:31 JST
From: OGURISU Osamu <oguri****@lagen*****> Subject: Re: [Gauche-devel-jp] remove! in SRFI-1 Date: Tue, 14 Jan 2003 19:34:01 +0900 > 一つ疑問なのですが、removeの他にremove!がある意義はどこにあるの > でしょうか? (処理系内部のコストが安いとか?) コストでしょうね。最初の要素を取り除くだけなら変わりませんが、 途中の要素を取り除く場合、removeはリストに変更を加えられないので 途中までの全てのリストをコピーする必要があります。remove!なら ポインタを一つ変えるだけで済みます。 但し、実装によっては破壊的操作が高くつくのでリストが短ければ コピーしちゃった方が良い、という場合があるかもしれません。 そんなわけでsrfi-1では変更を要求してはいないのだと思います。 どちらにせよ、リストが壊されてもいいなら remove!のコスト ≦ removeのコスト と考えて良いと思います。 --shiro