[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