[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Macro in a servlet



At Tue, 26 Mar 2002 16:13:12 -0500 (EST), "Matt 'LEGO Guy' Jadud" wrote:
> However, I currently find
> myself passing the 'initial-request' to the macro, while I'd rather it was
> pulled from the environment of the servlet.
> 
> 	Currently, I'm doing something like
> 
> 	(define-sytax (foo stx)
> 	  (syntax-case stx ()
> 	   [(_ ir blah blah)
> 	    ;; ^ my 'initial-request' variable
> 	    (syntax
> 	     (more ((blah blah)
> 		    (ho hum))
> 		.... (do-stuff-with ir) ....))])))

Probably you want something like

        (define-sytax (foo stx)
          (syntax-case stx ()
           [(_foo blah blah)
            (with-syntax ([initial-request (datum->syntax-object
                                            (syntax _foo)
                                            'initial-request))])
              (syntax
                (more ((blah blah)
                       (ho hum))
                  .... (do-stuff-with initial-request) ....)))])))

But beware: such "unhygienic" macros often lead to confusion,
especially if you ever write a macro that expands to a use of `foo'.

Matthew