Re: Initial comments & questions
Andre van Tonder 22 Mar 2004 18:00 UTC
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