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

Re: Initial comments & questions

This page is part of the web mail archives of SRFI 53 from before July 7th, 2015. The new archives for SRFI 53 contain all messages, not just those from before July 7th, 2015.



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