Re: Lexical syntax for boxes
John Cowan 21 May 2013 12:40 UTC
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 xxxxxx@ccil.org