[R6RS] R6RS records: record equality
Marc Feeley
feeley
Sun Aug 28 22:09:00 EDT 2005
On 28-Aug-05, at 10:10 AM, Michael Sperber wrote:
> Marc Feeley <feeley at iro.umontreal.ca> writes:
>
>
>> The specification indicates that two records are equal? iff they are
>> eq? (except if they represent builtin types like pairs, vectors,
>> etc).
>> I object to the "equal? iff eq?" because it limits the use of
>> records.
>> I would prefer a recursive definition where (equal? r1 r2) is true
>> iff
>> r1 and r2 are of the same record type, and for each field, the
>> contents
>> of that field in r1 and r2 are equal?.
>>
>
> I'll be happy to put this up in the issue bullet, but I think it would
> be a really bad idea. The current definition doesn't limit the use of
> records, but it does limit the use of EQUAL?.
If "equal? iff eq?", you can't use records as keys to access tables
(as explained in my previous message). So this is a limitation of
the uses of records.
> I believe that's a good
> thing, for the reasons that came up in the discussion of this in
> Snowbird.
>
Could you be more explicit. I don't follow why you think this is a
bad idea. Given that records can be tested with eq? if the user
wants to, why is it necessary for equal? to behave the same, and
counter-intuitively to what happens for pairs, vectors and strings?
Marc
More information about the R6RS
mailing list