Happy Happy Joy Joy (was: On to Hydro)
Mark S. Miller
markm@caplet.com
Thu, 24 Aug 2000 22:23:11 -0700
At 04:06 PM 8/24/00 , Tyler Close wrote:
> > For E, everyone needs to remember that "==" based lookup
> > uses a hash that's
> > never exposed to the E programmer, but used privately
> > within the hashtable
> > implementation. To do otherwise would be to expose the inherent
> > non-determinism of object-identity-based hash values. This
>
>What are your thoughts on Dan Bornstein's request that hashed
>containers use equivalence, not equality, to search for elements and
>that the definition of equivalence be user configurable at
>construction time. I believe it is a good feature and I have already
>added it to my Hashtable implementation.
E absolutely needs an equality-based hashtable primitive, and one cannot be
built from equivalence-based hashtable. Equivalence-based hashtables can be
provided as a primitive or be written in E. This means that, should we
leave equivalence-based hashtables out of the initial libraries, our users
can provide these for themselves. But only if we provide equality-based
hashtables. Why? One cannot write otherwise write reasonable algorithms
for calculating transitive equivalence of possibly cyclic data.
Cheers,
--MarkM