[r6rs-discuss] Why is (eqv? g g) unspecified when g is a procedure?
will at ccs.neu.edu
will at ccs.neu.edu
Tue Jul 17 20:58:04 EDT 2012
John Cowan quoting me:
> > If
> > you tried to argue that functions aren't first class in Standard ML,
> > for example, SML programmers would think you've lost your marbles,
> > but (IIRC) SML doesn't define equality on functions at all.
>
> 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?
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?
> 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.
Will
More information about the r6rs-discuss
mailing list