[plt-scheme] syntax identifier used out of context
Noel Welsh wrote:
> bar2 is define'd, so it is bound in the evaluation environment, not
> the transformation environment. So that explains the second error.
> If you want to use it in the transformer env you should
> define-for-syntax it.
>
>
Thats true, but define-for-syntax is disallowed inside another
define-syntax.
(define-syntax (foo stx)
(define-for-syntax (bar) ...))
> illegal use (not at top-level) in: (define-values-for-syntax (bar2)
> As for the first, I'm not sure. But I think this code can't work as
> bar2 is defined as a fn stx -> stx but it is used in the eval env, so
> it won't receive stx of q but rather the actual value of q.
>
>
I'm not sure about that since bar is a fn stx -> stx as well, its just
defined outside the foo function.
> Hope that is correct...
> N.
>
> On Thu, Dec 11, 2008 at 7:21 AM, Jon Rafkind <rafkind at cs.utah.edu> wrote:
>
>> I'm wondering why I get this error from the following code. ...
>>