[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] Procedural equivalence: the last debate
Andy Wingo scripsit:
> FWIW -- which is probably not much, because this list does not seem to
> contain a quorum of implementors --
How many would that be? My test suite currently contains 44 Schemes,
and there are 75 listed in the "fairly complete list" at SchemeWiki.
> Eq? is a pointer comparison operator, not an equivalence predicate.
Taylan Ulrich B. scripsit:
> Regarding being well-understood, in my opinion it doesn't get any
> simpler than "pointer-comparison vs. operational equivalence" with no
> additional constraints, and while that explanation is informal, we
> already have the notion of the conceptual location tags to support a
> formal explanation.
The problem with that is that "pointer" is an implementation-level
notion, not a user-level notion. From a user perspective, `eq?` is
a fast version of `eqv?` that you can safely use on certain types
and not others. While location tags formalize `eqv?`, there is no
counterpart for `eq?` at all. Its behavior is horridly arbitrary, about
the furthest thing possible from that famous hard, gem-like beauty that
Scheme is supposed to have.
John Cowan cowan@x
I amar prestar aen, han mathon ne nen, http://www.ccil.org/~cowan
han mathon ne chae, a han noston ne 'wilith. --Galadriel, LOTR:FOTR
Scheme-reports mailing list