[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Initial comments & questions



On Sun, 21 Mar 2004, Ken Dickey wrote:

>  Andre van Tonder wrote:>
> > First, in the monadic prior art, *bind* is already used for something more
> > akin to the current internal *syntax-bind*, so using bind for do could
> > cause confusion.
> 
> But in Scheme prior art [T, Slade, 1987] BIND is used for (dynamic) binding 
> forms.  We speak of lexical BINDings.

I agree.  syntax-bind would be more Schemely, and I like it.  

> So SYNTAX-LET* would make sense for that usage!  [Freeing up SYNTAX-BIND for 
> the syntax-do which does not DO].

I like this proposal also.  The one possible source of confusion, which
could also happen with syntax-bind, is that the types of the LHS and RHS
are different, e.g.,

  (syntax-let* ((x (syntax-return (1 2 3)))
                (y (syntax-return x))
                ...

i.e., the variables on the LHS refer to syntax, and the RHSs have to be
computations.  

By the way, I wish I could come up with a briefer name for
*syntax-return*.  Just SYNTAX would have been nice, but that's already
taken :(

> > Second, in e.g. Haskell,
> 
> Hey, not to belabor this too much, but *this is Scheme*.
> ... 
> Your proposed forms should accord with Scheme forms in common use.  Anything 
> else is confusing by design.
> 
> Designing for clarity is designing for the context of your (desired) users.

Point taken :)

> > 2) Perhaps in future have syntax-begin for imperative
> >    things like syntax-debug-message.  The above syntax-do example becomes
> 
> I think you are making the argument for a declarative debug form here.  I 
> support the notion.

Could you perhaps suggest an example of what such a thing could look like?

> Did you like SYNTAX-QUOTE ?

I'm thinking af changing the specification of syntax-inspect to invoke an
inspector if there is one...

Regards
Andre