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