[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lexical syntax for boxes

This page is part of the web mail archives of SRFI 111 from before July 7th, 2015. The new archives for SRFI 111 contain all messages, not just those from before July 7th, 2015.

Alexey Radul scripsit:

> I don't think that's right.  The whole point of boxes is to be
> mutable; which means the correct treatment [1] thereof by equality
> predicates is to compare by identity.  

Henry Baker's `egal?`, though I like it very much, is not "the correct
treatment", in the sense of the only possible or reasonable treatment,
of equality.  There is a place for it, yes; but there is also a place
for contingent equality.  "Is the value in that box (of money, say) equal
to the value in this box?" is not an ill-posed question, and it is this
kind of equality that `equal?` provides in Scheme as it is.  By your
argument, since vectors are also usually used for their mutability,
`equal?` should reduce to `eqv?` on them too, yet this has never been so.

In short, `equal?` is and always will be flawed.  A generalized equality
predicate that can be tailored to specific applications is needed.
I think I'll push that ahead of hash tables, which I was planning to do next.

> [1] http://www.pipeline.com/~hbaker1/ObjectIdentity.html

An observable characteristic is not necessarily         John Cowan
a functional requirement.  --John Hudson                cowan@xxxxxxxx