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
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 va
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
I am struggling with use unique name variable within srfi-53
(require (planet dvanhorn/srfi-53:1:0/srfi-53))
(syntax-inspect (syntax-temporaries (x y z))) ;==> (temp~1 temp~2 temp~3)
> '(temp temp temp)
All unique name are same: temp
How to use unique name variable within srfi-53 ?
__
4 matches
Mail list logo