"Bill Kelly" <billk / cts.com> wrote:
> Borrowed from my C++ STL book[1], which lists hash_map<> as a 
> model of Pair Associative Container (as well as a model of
> Hashed Associative Container and Unique Associative Container).

Boost (a collection of C++ template libraries) works with tupels
rather than with pairs.

In Smalltalk there is a Collection class named KeyedCollection but
Array is an ArrayedCollection, the latter a subclass of
SequenceableCollection. Dictionary is a Subclass of Set.
IdentityDictionary is not a subclass of Dictionary. I don't want to
discuss Smalltalk's single inheritance. I just want to point out that
there are a lot of koncepts to take into account.

- fixed order (sorted keys) vs.
  variable order (may change sort function) vs.
  no order (hashed keys)
- fixed type keys vs.
  arbitrary but constant type vs.
  mixable types
- access by keys in constant time?
- allow dublicated values?
- how to cope with equal but not identical keys?
- fixed size or growable?

This list is not complete, I just did some brainstorming.

I think an appropriate name will come up when decision about the
interface is complete.

Cheers
Sascha