[racket] Plea for neologism (was: Re: letoverlambda)

From: John Clements (clements at brinckerhoff.org)
Date: Wed Nov 24 14:49:02 EST 2010

> On Wed, Nov 24, 2010 at 11:05 AM, Robby Findler
> <robby at eecs.northwestern.edu> wrote:
>> On Wed, Nov 24, 2010 at 12:55 PM, Joe Marshall <jmarshall at 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.  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])

(bind-x-to-5 x)

...is a legal macro in a hygienic macro system.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4669 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20101124/c43d1450/attachment.p7s>

Posted on the users mailing list.