Re: [Scheme-reports] Do record type NAMEs shadow somhow? Aaron W. Hsu 23 May 2011 21:26 UTC

On Mon, 25 Apr 2011 02:25:55 -0400, Alex Shinn <alexshinn@gmail.com> wrote:

> On Mon, Apr 25, 2011 at 11:24 AM, Andre van Tonder <andre@het.brown.edu>
> wrote:
>> In the following sequence:
>>
>> (define-record-type <pare>
>>    (kons x y)
>>    pare?
>>    (x kar set-kar!)
>>    (y kdr))
>>
>> (define-record-type <pare>
>>    (cons x y)
>>    pair?
>>    (x car set-car!)
>>    (y cdr))
>>
>> (kar (kons 1 2))   ;; WILL THIS STILL WORK?
>>
>> In other words, will the second definition of <pare> (with different
>> accessors)
>> in the same scope mess up the first record type definition?
>
> There's no guarantee this will work.  In a module body
> the redefinition of <pare> would be an error, in the repl
> a good implementation should give you a warning.

Specifically, DEFINE-RECORD-TYPE "binds" <pare>, though it doesn't say to
what it is bound. In particular, I believe that under the current draft,
records are generative. This has ramifications for everything from macros
to environments. I actually ran into this issue (generativity of records)
this semester with test-suite/auto-grading code.

	Aaron W. Hsu

--
Programming is just another word for the lost art of thinking.

_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports