w...@ccs.neu.edu scripsit:

> > Different definitions for different contexts.  SML equality has ad-hoc
> > polymorphism; Scheme `eqv?` has universal polymorphism.
> 
> That's news to me.  Which of the Scheme reports/standards do you wish
> to cite as your source?

Any of them will do:  given two values x, y, `(eqv? x y)` answers either
#t or #f.  This is not the case in SML, where values cannot be compared
unless they have the same type, and only certain types can be compared
for equality at all.

> And how do you reconcile your just-so story with the change made long
> ago, when both (eqv? (vector) (vector)) and (eqv? (string) (string))
> were required to return true?

I don't understand the relevance of this question.

> > In SML, almost
> > everything is immutable, and Leibniz's criterion doesn't apply.
> 
> In Scheme, procedures have never been immutable (although they can
> refer to mutable objects), so I guess Leibniz's criterion doesn't
> apply to procedures.

I suppose you mean "have never been mutable".  But Leibniz's criterion is
that identical objects are indiscernible rather than that indiscernible
objects are identical, so I ought not to have referred to it.

> 
> Will

-- 
John Cowan            http://www.ccil.org/~cowan     co...@ccil.org
                if if = then then then = else else else = if;

_______________________________________________
r6rs-discuss mailing list
r6rs-discuss@lists.r6rs.org
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to