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