[racket] Accessing lambda arguments in a macro

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


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.