[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] Procedural equivalence: the last debate

On Sat, Jun 8, 2013 at 10:48 PM, John Cowan <cowan@x> wrote:
+1, with the addition of records after pairs and bytevectors after vectors.

Yes, sorry, I should have made that adjustment.  I hereby revise my proposal.  Below is the language after your revision, starting from the phrasing from R7RS draft 9:

  The eqv? procedure returns #t if... obj1 and obj2 are procedures whose
  location tags are equal.

  The eqv? procedure returns #f if... obj1 and obj2 are procedures
  that would behave differently (return different value(s) or have
  different side effects) for some arguments.

  The above definition of eqv? allows implementations latitude in
  their treatment of procedures and literals: implementations are free
  either to detect or to fail to detect that two procedures or two
  literals are equivalent to each other, and can decide whether or not
  to merge representations of equivalent objects by using the same
  pointer or bit pattern to represent both.

  On symbols, booleans, the empty list, pairs, procedures, records,
  non-empty strings, vectors, and bytevectors, eq? and eqv? are
  guaranteed to have the same behavior.
Scheme-reports mailing list