No apologies needed. I just wanted to warn you that some old-style Lispers will 
give you a hard time concerning 'hygiene' and I also wanted to give you an idea 
that they usually don't understand the full range of expressive power we get 
from it, not to speak of the conflation of pattern-matching style macro 
definitions and scope-sensitivity. [Yes, these ideas are fully orthogonal and 
our senior author on the original 'hygiene' paper wanted to make this point by 
forcing us into using Lisp-style macros. People never understood anyway.] -- 
Matthias






On Jul 13, 2012, at 5:06 PM, Nick Sivo wrote:

>> You might have an extremely deep understanding of macros, in which case you 
>> can ignore the next sentence.
> 
> I don't, and apologize if I've been using the term (and others!)
> incorrectly. What little I know has come from the documentation and
> papers I've encountered, and lacks the rigor of academic training or
> insight from the history of Racket.
> 
> In providing an observation based on my personal (and limited)
> experience, I feel I've accidentally happened upon a (contentious?)
> topic with history unfamiliar to me, and about which I'm not currently
> able to converse precisely.  Oops :)
> 
> -Nick
> 
> On Fri, Jul 13, 2012 at 12:37 PM, Matthias Felleisen
> <matth...@ccs.neu.edu> wrote:
>> 
>> On Jul 13, 2012, at 2:05 PM, Nick Sivo wrote:
>> 
>>> There were only a few places where breaking hygiene was a feature,
>> 
>> 
>> You might have an extremely deep understanding of macros, in which case you 
>> can ignore the next sentence.
>> 
>> Hygiene -- as it is used nowadays, not the thing for which I imported 
>> Barendregt's original term -- does not just prohibit certain idioms it also 
>> enables some that cannot be implemented with old macro system.
>> 
>> And yes, the cost you pay is that you need to learn a distinct notation. BUT 
>> I would argue that for true syntax programmers, this is a plus because it 
>> reminds them of the very important fact that syntax is evaluated at a very 
>> different time from run-time code, and that values flowing from one phase to 
>> another work only by 'accident'. [I understand enough to know that it isn't 
>> really by accident but in a sense it is and often it fails in subtle ways.]
>> 
>> -- Matthias
>> 


____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to