[plt-scheme] Immutable mappings on symbols
Carl Eastlund wrote:
> It seems to me the eq-hash-order and equal-hash-order units would
> provide only approximate orderings, because different items can
> (rarely) be given the same hash code by (eq-hash-code ...) and
> (equal-hash-code ...). Is this the case?
Yes.
> Or does the set unit do
> something intelligent in the rare case that equality can be tested
> where less-than cannot?
From ordered.scm:
(define eq-hash-order@ (predicates->ordered eq?
(lambda (x y) (< (eq-hash-code x) (eq-hash-code y)))
(lambda (x y) (or (eq? x y)
(< (eq-hash-code x) (eq-hash-code y))))))
(define equal-hash-order@ (predicates->ordered equal?
(lambda (x y) (< (equal-hash-code x) (equal-hash-code y)))
(lambda (x y) (or (equal? x y)
(< (equal-hash-code x) (equal-hash-code y))))))
--
Jens Axel Søgaard