[plt-scheme] [scribble] syntax quasi/unquote
At Thu, 29 Apr 2010 11:13:56 -0400, Eric Tanter wrote:
> >> Meanwhile, you can use
> >> `eval:alts' to separate the typeset expression from the evaluated
> >> expression. Then, for the typeset part, escape to use SCHEME:
> >>
> >> @interaction[
> >> (eval:alts @#,SCHEME[#`(#,10)] #`(#,10))
> >> ]
> >
> > Sorry I did not understand that.
>
> Despite the fact that there is no entry in the manul for eval:alts,
Sorry - I've added an index entry to point to the description in
`interaction' for future doc builds.
> I finally
> figured out that eval:alts typesets its first argument and evaluates the
> second.
>
> I don't see how this helps me in my issue however. I already know how to
> typeset my macro without evaluating, ie. using @SCHEMEBLOCK.
>
> What I don't manage to do is to evaluate the macro definition in a given
> evaluator.
> So using eval:alts, I can't give the macro definition as second parameter.
>
> any idea?
I thought that something like this might work
(define-syntax-rule @INTERACTION[form ...]
@interaction[(eval:alts @#,SCHEMEBLOCK[form] form) ...])
but the problem is that the first part o `eval:lats' must be an
element, instead of a block.
So, here's a different idea. The `def+int', etc. forms recognize
`unsyntax' by its binding, so you can just shadow that binding, like
this:
@(let ([unsyntax 'hide])
@def+int[
(define l
#`(#,(+ 1 2)))
#`(#,l)
])