No I meant a particular system. The one he used.
On Wednesday, November 24, 2010, John Clements <cleme...@brinckerhoff.org> wrote: > (followups trimmed to dev; is that an acceptable strategy?) > > On Nov 24, 2010, at 12:44 PM, Robby Findler wrote: > >> 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. > > Right, I understand. Oleg shows that you can bind x even in a macro system > that doesn't allow variable capture in the way that I used here; in other > words, variable capture is possible even in a system-without-XXX, where XXX > refers to the property of being able to do what I did here (straightforward > variable capture). IIUC, you use the word "hygienic" in the paragraph above > (when you say "but in a hygienic macro system") to mean "system-without-XXX", > but Matthias' point is that hygienic *doesn't* mean "system-without-XXX", it > just means "system-where-XXX-can-only-occur-deliberately." > > > Naturally, this conversation would be simpler if we had a word for XXX... :) > > John > > _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev