> On Wed, Nov 24, 2010 at 11:05 AM, Robby Findler > <[email protected]> wrote: >> On Wed, Nov 24, 2010 at 12:55 PM, Joe Marshall <[email protected]> >> 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.
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.
Right?
John
smime.p7s
Description: S/MIME cryptographic signature
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

