Re: Don't be irritated by silly mistakes in draft #1
John Cowan 09 Sep 2015 15:26 UTC
Taylan Ulrich Bayırlı/Kammer scripsit:
> I got the idea from MIT/GNU Scheme, and just realized that it actually
> just applies to eqv? hash tables there, which makes sense. I'll adopt
> that.
Okay, that makes sense.
> > Ephemerons are inherently key-weak: I don't think it makes sense to have
> > ephemeral-value or ephemeral-value-and-key. So just use ephemeral-key
> > (which could be shortened to ephemeral) and explain that ephemeral tables
> > can be used in place of key-weak ones if the implementation sees fit.
>
> See MIT/GNU Scheme. An ephemeral-value table simply swaps the position
> of the key/value in the ephemerons held by the table (but the key is
> still the key for the hash table). In key & value, there is a pair of
> ephemerons.
The former makes sense operationally if not in human terms (what is it for?).
The latter is just confusing. I'll look at the MIT Scheme docs.
> I really wish R7RS had not reverted that change but anyhow, since this
> is for R7RS, you're right.
All known R6RS implementations return a single unspecified value anyway;
it was extending a latitude that nobody used.
> After pondering on this and asking a couple people for their opinion, I
> decided to adopt `hashtable-map!` for that use-case instead.
Good idea.
--
My .sigs are from my large and miscellaneous reading both on and off the net.
Occasionally I hear one viva voce or make one up (without attribution,
of course). I try to stay within the McQuary limit, but sometimes fail,
as in this case. In general, the quotes are chosen at random by a script
from <http://www.ccil.org/~cowan/signatures>, but sometimes I choose one
on purpose. I've been collecting and using them for 30+ years.