On Wed, Nov 24, 2010 at 1:49 PM, John Clements <cleme...@brinckerhoff.org> wrote: >> On Wed, Nov 24, 2010 at 11:05 AM, Robby Findler >> <ro...@eecs.northwestern.edu> wrote: >>> On Wed, Nov 24, 2010 at 12:55 PM, Joe Marshall <jmarsh...@alum.mit.edu> >>> wrote: >>>>> On Nov 20, 2010, at 6:58 PM, Matthias Felleisen wrote: >>>>> >>>>>> Hygiene is a technical term. The idea is roughly that >>>>>> the __macro system__ (as a whole) should respect the >>>>>> lexical structure of your program. >>>> >>>> It is somewhat unfortunate that the name `hygiene' has caught >>>> on here. It really ought to be called `lexical scoping' (with the >>>> understanding that macros have no special permission to violate >>>> lexical scope any more than lambda bindings do). >>> >>> You know about Oleg's macro called, bind-x-to-5 that has one >>> subexpression does exactly its name claims, but in a hygenic macro >>> system? > > Hang on... you're still using the term "hygienic" in the non-Felleisen way.
No I'm not. > That is, if we accept that a hygienic system is one that has well-defined >behavior but where you can bind new names when you explicitly ask to, then > > #lang racket > > (define-syntax (bind-x-to-5 stx) > (syntax-case stx () > [(_ exp) > #`(let ([#,(datum->syntax stx 'x) 5]) > exp)])) > > (bind-x-to-5 x) > > ...is a legal macro in a hygienic macro system. Sure. But Oleg's macro doesn't do that. Robby _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users