Re: Lexical syntax for boxes
John Cowan 21 May 2013 06:17 UTC
Alan Watson scripsit:
> If boxes are records, then `eqv?` behaves in this way, although `eq?`
> and `equal?` are not necessarily identical to `eqv?`. However, unless
> I am missing something, the SRFI does not require boxes to be records.
It does not, but the content of a box is obviously a location, and it
would be contrary to the spirit, if not the letter, of RnRS to make things
`eqv?` that denote distinct locations, or not `eqv?` if they denote the
same location. As for `eq?`, it must behave the same as `eqv?` except
for the specific and traditional exceptions of characters and bignums.
> Defining `equal?` on boxes to be more like `equal?` on vectors of
> length 1 would be more useful, I think.
It might or it might not be, depending on one's needs. You might want
`equal?` to look right through boxes, or you might want to insist that
boxes are `equal?` only if they are `eqv?`. That's why a generalized
equality predicate that can, but need not, descend into various things
is so useful: you can tailor it to your needs and easily create your own
best equality predicate(s) for each new circumstance. That allows the
exact details of what `equal?` does to be of mostly historical interest:
it does the right thing in simple cases, and is implementation-dependent
elsewhere.
--
John Cowan xxxxxx@ccil.org
http://www.ccil.org/~cowan
Humpty Dump Dublin squeaks through his norse
Humpty Dump Dublin hath a horrible vorse
But for all his kinks English / And his irismanx brogues
Humpty Dump Dublin's grandada of all rogues. --Cousin James