[plt-scheme] Non-hygenic Macro Revelation
I disagree; I meant there's no right solution without a documented specification. If you specify what implicit bindings it defines (and with syntax-case, you need to specify what marks it uses) then there *is* a right solution.
Dave
----- Original Message -----
From: "Joe Marshall" <jmarshall at alum.mit.edu>
To: "David Herman" <dherman at ccs.neu.edu>
Cc: "Jay McCarthy" <jay.mccarthy at gmail.com>, "PLT-Scheme List" <plt-scheme at list.cs.brown.edu>
Sent: Thursday, March 25, 2010 2:58:24 PM GMT -08:00 US/Canada Pacific
Subject: Re: [plt-scheme] Non-hygenic Macro Revelation
Trimming down David's arguments:
On Thu, Mar 25, 2010 at 12:47 PM, David Herman <dherman at ccs.neu.edu> wrote:
> Sometimes you want it to work one way, sometimes another. Here's my standard example.
> Imagine that you implement `while' to implicitly bind `break'.
>
> Now imagine you want to implement `for' on top of this:
> In this case, you want part of the public interface of `for' to be that it binds `break'.
> But now imagine you want to use `while' internally as part of an implementation:
> Then you might *not* want the binding of `break' to be exposed.
> So there's no "right" behavior;
Therefore, you should never, ever use implicit bindings: all
behaviors are wrong.
--
~jrm