ToC DocOverview CGDoc RelNotes Index PermutedIndex
Allegro CL
Home Previous Up Next Table of Contents Index
  ANSI Common Lisp   18 Hash Tables   18.1 Hash Table Concepts

18.1.2 Modifying Hash Table Keys

The function supplied as the :test argument to make-hash-table specifies the `equivalence test' for the hash table it creates.

An object is `visibly modified' with regard to an equivalence test if there exists some set of objects (or potential objects) which are equivalent to the object before the modification but are no longer equivalent afterwards.

If an object O1 is used as a key in a hash table H and is then visibly modified with regard to the equivalence test of H, then the consequences are unspecified if O1, or any object O2 equivalent to O1 under the equivalence test (either before or after the modification), is used as a key in further operations on H. The consequences of using O1 as a key are unspecified even if O1 is visibly modified and then later modified again in such a way as to undo the visible modification.

Following are specifications of the modifications which are visible to the equivalence tests which must be supported by hash tables. The modifications are described in terms of modification of components, and are defined recursively. Visible modifications of components of the object are visible modifications of the object.

18.1.2.1  Visible Modification of Objects with respect to EQ and EQL
18.1.2.2  Visible Modification of Objects with respect to EQUAL
18.1.2.3  Visible Modification of Objects with respect to EQUALP
18.1.2.4  Visible Modifications by Language Extensions


Home Previous Up Next Table of Contents Index
© Franz Inc. 1998-2017 - File last updated 01-11-2017