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