[R6RS] Hash table terminology consistency

William D Clinger will at ccs.neu.edu
Mon Sep 4 09:02:14 EDT 2006

Two comments on the hash tables chapter:

The first paragraph says "...the equivalence predicate,
which is a procedure that accepts two keys and returns
#t if they are equivalent."  The two problems with that
are that it doesn't say the equivalence predicate must
return #f if they aren't, and it doesn't allow the
equivalence predicate to return a true value other than
#t.  It would be better to say "...the equivalence
predicate, which is a procedure that returns true if
and only if they are equivalent."  (Note that "true" is
a technical term in the R6RS, meaning any value other
than #f; see section 9.1.)

The description of make-hash-table says the equiv?
predicate must return a boolean.  I don't see the
point of that restriction.  If we're going to restrict
the predicate to return a boolean, then its description
in the first paragraph should also require it to return
a boolean.


More information about the R6RS mailing list