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

From: R. Kent Dybvig <dyb>
Date: Fri Jan 26 15:20:44 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
Received on Fri Jan 26 2007 - 15:20:16 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC