R6RS:翻訳:Rationale:Hashtables

R6RS:翻訳:Rationale:Hashtables

24 章 ハッシュテーブル

24.1 キャッシュ処理

本仕様書では、ハッシュテーブルはハッシュ関数と同値関数の結果をキャッシュすることを認められてい、任意のハッシュテーブル操作はハッシュ関数を 2 回以上呼ぶ可能性のあることに言及している。ハッシュテーブルの検索の後には更新が続くことが多く、キャッシュを行うことにより性能が向上することもある。ハッシュテーブルはその内部表現をいつでも自由に変更してよく、そのため、ハッシュ関数を複数回呼び出すことにもなる。

24.2 変更不可能なハッシュテーブル

ハッシュテーブルを変更不可能にすることでハッシュテーブルの参照のコストが下がる可能性がある。また、ハッシュテーブルの作成者は、特に作成者の管理を離れたコードで、ハッシュテーブルが変更されることを避けたいと考えるかもしれない。

24.3 ハッシュ関数

make-eq-hashtable と make-eqv-hashtable 構築子はそのハッシュ関数を隠蔽するように設計されている。これにより、実装系はオブジェクトのマシンアドレスをハッシュ値として使うことができるようになり、ガーベッジコレクタによりオブジェクトが別のアドレスに移動されたときに必要に応じてハッシュテーブルの一部をハッシュし直すことができるようになる。


Last modified : 2008/04/04 01:27:42 UTC