Gensym процедура с воровством r7rs - PullRequest
0 голосов
/ 02 мая 2018

При larceny r7r6 для схемы я пытаюсь использовать процедуру gensym, как она определена в документации .

При вызове (в файле или в консоли, набрав larceny -r7r6), я получаю сообщение об ошибке, в котором говорится, что gensym - неопределенная глобальная переменная.

Я забыл об импорте или он недоступен? Я могу найти новое имя или реализацию где-нибудь?

1 Ответ

0 голосов
/ 03 мая 2018

gensym процедура не определена ни в R6RS, ни в R7RS. Поэтому вам нужно импортировать его отдельно, если вы хотите использовать его в среде R6RS / R7RS, например:

(import (primitives gensym))

Возможно, лучше использовать процедуру generate-temporaries, которая определена в (rnrs), возвращающем список временных идентификаторов. Вы можете использовать его для создания нового символа, подобного этому

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

Это вернет список, который содержит только один символ в качестве элемента.

...