[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