[r6rs-discuss] [Formal] (r6rs base) must also export _ and ... at
level 1
R. Kent Dybvig
dyb at cs.indiana.edu
Fri Jan 26 15:20:16 EST 2007
> >> 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.
I agree, but I was not suggesting that we leave 'fields' and other
define-record-type noise words unbound while still using free-identifier=?
for the comparison; rather, I am suggesting that we weight the costs and
benefits of treating the noise words as symbols, i.e., leaving them
unbound but comparing them symbolically.
Kent
More information about the r6rs-discuss
mailing list