Email list hosting service & mailing list manager

Re: Initial comments & questions Ken Dickey (20 Mar 2004 16:20 UTC)
Re: Initial comments & questions Andre van Tonder (21 Mar 2004 13:28 UTC)
Re: Initial comments & questions Andre van Tonder (21 Mar 2004 14:09 UTC)
Re: Initial comments & questions Ken Dickey (22 Mar 2004 00:11 UTC)
Re: Initial comments & questions Andre van Tonder (22 Mar 2004 18:00 UTC)

Re: Initial comments & questions Andre van Tonder 21 Mar 2004 14:09 UTC

On Sun, 21 Mar 2004, Andre van Tonder wrote:

> Taylor's debug messages.  For example:
>
>   (syntax-do (x <- ......)
>              (syntax-message "The intermediate result is:" x)
>              (syntax-if (atom? x)
>                (syntax-do (syntax-warning "Atoms may explode if split")
>                           (y <- ......)
>                           (syntax-message "y = " y)
>                           (z <- ......)
>                        .
>                        .
>
> Note that this would be an argument for keeping both the current <- arrows
> and the current indentation and bracketing.

Another possibility:

1) Indeed use syntax-bind, only for sequential bindings a la let*:

   (syntax-bind ((x (syntax-return (1 2 3)))
                 (y (syntax-reverse x))
                 (z (syntax-reverse y)))
     (syntax-return z))

2) Perhaps in future have syntax-begin for imperative
   things like syntax-debug-message.  The above syntax-do example becomes

  (syntax-bind ((x (.......)))
    (syntax-begin
      (syntax-debug-message "Intermediate result = " x)
      (syntax-bind ((y (.....)))
        (syntax-if (syntax-atom? x)
                   (syntax-begin
                     (syntax-warning "Atoms may explode if split")
                     (syntax-begin (y (......))
                       (syntax-begin (syntax-debug-message "y = " y)
                                     (syntax-bind (z (.......))
                   .
                   .

    This is arguably more Schemely, but it is a royal pain to
    add debug messages this way....