[r6rs-discuss] [Formal] (r6rs base) must also export _ and ... at level 1

AndrevanTonder andre at het.brown.edu
Thu Jan 25 10:42:03 EST 2007


On Thu, 25 Jan 2007, R. Kent Dybvig wrote:

>> Since imported identifiers cannot be redefined, it is impossible to stomp on
>> these identifiers if they are bound in (r6rs records).
>
> That's incorrect, even if one ignores the likelihood that implementations
> will provide traditional interactive environments.  They can be stomped on
> by local bindings, which is what I think is most likely:
>
>  (define foo
>    (lambda (fields)
>      ---
>      (let (---)
>        (define-record-type foo (fields (mutable x)))  => syntax violation
>        ---)))

Ah, okay, but this particular violation will happen also if "fields" is left 
unbound in (r6rs records), so I don't understand how the example applies to the 
question of whether binding them is better or worse.

At least binding them would eliminate library-toplevel stomping 
errors, which is already an advantage.

Your previous point about translation also particularly shines here for 
the records little language, and others, that consist of actual words, as 
opposed to non-words.  It would be unfortunate if an elementary school teacher 
in Spain wanted to translate everything into Spanish for his or her students, 
but were unable to substitute "campos" for "fields".

Andre



More information about the r6rs-discuss mailing list