[plt-scheme] Can't see the tree for the forest

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sun Jul 8 17:44:53 EDT 2007

At Sun, 08 Jul 2007 22:16:31 +0200, Jens Axel Søgaard wrote:
> In the goto macro (which expands (goto name) into (name), when
> the name is known label, I want to check whether the
> name is known or not. For some reason that escapes me,
> the test
>    (srfi:member #'name (syntax->list #'(name1 ...)) module-identifier=?)
> fails for both known and unknown label names.
> 
> In the attached file, the test has been replaced with #t in order
> to test the rest.
> 
> What am I missing?

The `goto' local macro is outside the binding of the target labels. So
the `name' has been bound at the point of the text, but the `name1's
haven't.

I think you need to bind the `goto' macro and the labels all together:

  (letrec-syntaxes+values ([(goto) ...])
                          ([(label-name)      (lambda () expr ... continue)]
                           ...
                           [(end-label-name)  (lambda () end-expr ...)])
    (start))


Matthew



Posted on the users mailing list.