On Fri, 2009-06-19 at 11:50 +0300, Abdulaziz Ghuloum wrote:
> On Jun 19, 2009, at 2:27 AM, Derick Eddington wrote:
> 
> > That's clever, but it's broken:
> 
> Here's another attempt.  All the (for ---) stuff is mocked up of course
> just so that larceny does not throw exceptions at uses of free-id=? and
> so that PLT does not mark things that are actually bound as unbound.
> 
> Aziz,,,
> 
> $ cat b/bound.sls b/bound-ctxt.sls
> #!r6rs
> (library (b bound)
>    (export unbound-identifier?)
>    (import (for (rnrs) (meta -1)) (for (b bound-ctxt) (meta -1) run))
>    (define (unbound-identifier? x)
>      (and
>         (not (free-identifier=? x #'define))
>         (not (free-identifier=? x #'syntax))
>         (not (free-identifier=? x #'ctxt))
>         (free-identifier=? x ;; for larceny, this must come last
>           (datum->syntax ctxt (syntax->datum x))))))
> 
> #!r6rs
> (library (b bound-ctxt)
>    (export ctxt)
>    (import (only (rnrs) define syntax))
>    (define ctxt #'here))

I think that's correct.  Cool.

-- 
: Derick
----------------------------------------------------------------

Reply via email to