Be careful using gensym to create unique variables.  If you compile a
program that uses a gensym'd variable, you can run into problems arising
from odd interactions between uninterned symbols and the
marshalling/unmarshalling process for bytecode files.  It's always safe to
use generate-temporaries (or generate-temporary from racket/syntax for just
one identifier), even in compiled programs.

Carl Eastlund


On Fri, Sep 27, 2013 at 1:23 AM, Niitsuma Hirotaka <
hirotaka.niits...@gmail.com> wrote:

> Also I found
>
> (define-macro (syntax-gensym k)
>   (let ((var (gensym)))
>     `(syntax-return
>       ,k
>       ,var)
> ))
>
> can generate  unique variable.
>
> Usage
>
> (define-syntax-computation testing
>   (computation-rules (  )
>     (( _  v )
>      (syntax-do
>       (var <- (syntax-gensym))
>       (syntax-return var)
>     ))))
>
> 2013/9/26 Asumu Takikawa <as...@ccs.neu.edu>:
> > On 2013-09-26 12:54:45 +0900, Niitsuma Hirotaka wrote:
> >> How to use unique name variable within srfi-53 ?
> >
> > I'm not sure why that PLaneT package has that behavior, but if you just
> > want to generate new identifiers, you can use the built-in
> > `generate-temporaries` function:
> >
> >   Welcome to Racket v5.90.0.9.
> >   -> (generate-temporaries '(x y z))
> >   '(#<syntax x4> #<syntax y5> #<syntax z6>)
> >
> > Cheers,
> > Asumu
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
>
>
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to