[racket] Accessing lambda arguments in a macro

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Fri Sep 16 16:12:01 EDT 2011


Why not just store the arguments to lambda in some 'register' and ask for them? 




On Sep 16, 2011, at 4:09 PM, Daniel MacDougall wrote:

> In this example it should return "ARG".
> 
> On Fri, Sep 16, 2011 at 1:08 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
> 
> 
> What should (foo bar) return?
> 
> 
> On Sep 16, 2011, at 3:46 PM, Daniel MacDougall wrote:
> 
> > Is there any way to define a macro that expands out to a lambda, and then access the arguments passed to that lambda from outside the macro in the calling context?
> > Here's an example of what I mean:
> >
> > #lang racket
> >
> > (define-syntax-rule (foo form ...)
> >   ((lambda (bar) form ...) "ARG"))
> >
> > (foo "Hello") ; => returns "Hello"
> >
> > (foo bar)     ; => expand: unbound identifier in module in: bar
> >
> >
> > I'd like access to the "bar" argument on the last line. Is this possible with Racket macros?
> >
> > Thanks,
> > Daniel
> > _________________________________________________
> >  For list-related administrative tasks:
> >  http://lists.racket-lang.org/listinfo/users
> 
> 




Posted on the users mailing list.