[Gauche-devel-jp] remove! in SRFI-1

Back to archive index

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





Gauche-devel-jp メーリングリストの案内
Back to archive index