what is the difference between syntax-case matched identifiers, and those 
provided by let.  This example crashes and burns on load:

  (define-syntax (fine1 stx)
    (let (
           [a 7]
           [b 9]
           )
      (syntax/loc stx
        (+ a b)
        )))

Which begs the question, how do you compute something at syntax expansion time, 
and then pass that into a syntax/loc?  Everything inside the syntax loc is 
program stuff, not syntax expansion time stuff, so we don't put syntax 
expansion time computation inside of it.

The manual says that the second argument to syntax/loc is a tempalte, but any 
combination of quasiquote and camma I try here gets bounced back with syntax 
errors. 





> Greg, syntax/loc is beautiful (so far ;-) it goes beyond my hopes, seems it 
> shoudl be prominent in the docs.
> 
>   (define-syntax (messup4 stx) 
>     (syntax/loc stx
>       (let (
>              [a 7]
>              [b 9]
>              )
>         (^ a b)
>        )))
>         
>   (messup4)
> 
...
> The error message points directly at the caret in the quoted string. (who 
> knows maybe our programmer thought that meant xor?)
> 


-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to