If you could create an identifier whose wrap was known to be empty
(i.e. had no substitutions), then your trick with free-identifier=?
would work for imports and top-level definitions as well as
lower-level (e.g. let) bindings. That's why I asked whether such a
guarantee of an empty wrap could be made for the results of
generate-temporaries.

Relying on the subtleties of free-identifier=? and
generate-temporaries would not be ideal, however. Since you "see no
way of identifying what is bound and what is not at the root level of
a library form or at the top-level using a simple technique", I
contest that a primitive bound-identifier? is wanting.

On Mon, Jun 22, 2009 at 10:21 AM, Aaron W. Hsu<[email protected]> wrote:
> Ramana,
>
> On Sun, 21 Jun 2009 03:03:42 -0400, Ramana Kumar <[email protected]>
> wrote:
>
>> Aaron you have a good idea, but the choice for #'a is much more
>> important than it seems. For example, if you define your
>> bound-identifier? macro at the top level of some library or script
>> that imports (rnrs), then it will incorrectly say "define" (and other
>> (rnrs) imports) is unbound. You are inadvertently picking up the wrap
>> of the identifier #'a.
>
> This is neither unintentional nor unexpected. As I mentioned, the whole
> reason this works is because I am grabbing the top-level wrapping on a
> syntax and using that to introduce a binding of the same form as the first.
> The code I gave only works for lexically scoped values, and not for imported
> or top-level definitions. As you know, the reason that this works is because
> I am created a top-level syntax that has the same reference as the given
> identifier would *if* the identifier is not scoped at some later point, such
> as inside of a LET or the like. The definition of 'free-identifier=?' states
> that all identifiers are presumed to be explicitly bound at the top-level.
> This makes it impossible to distinguish whether an identifier is bound at
> the top level or not using 'free-identifier=?'. Thus, I can see no way of
> identifying what is bound and what is not at the root level of a library
> form or at the top-level using such a simple technique.
>
> Sincerely,
>
>        Aaron W. Hsu
>
> --
> Of all tyrannies, a tyranny sincerely exercised for the good of its victims
> may be the most oppressive. -- C. S. Lewis
>

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to