盗窃 r7rs 的 Gensym 程序

Gensym procedure with larceny r7rs

在方案的 larceny r7r6 下,我正在尝试使用 gensym 过程,因为它显然已定义为 in the documentation

调用它时(在文件中或在控制台中键入 larceny -r7r6),我收到一条错误消息,指出 gensym 是一个未定义的全局变量。

我是忘记导入了还是不可用?有没有我可以在任何地方找到的新名称或实现?

gensym 过程在 R6RS 或 R7RS 中均未定义。所以在R6RS/R7RS环境下使用需要单独导入,如下:

(import (primitives gensym))

最好使用 generate-temporaries(rnrs) return 临时标识符列表中定义的过程。您可以使用它来生成像这样的新符号

(apply syntax->datum (generate-temporaries '(a)))

这将 return 一个仅包含一个符号作为其元素的列表。