Вы хотите задавать вопросы окружающей среде. Это невозможно с R5RS, и я не уверен насчет R6RS. Я, конечно, хотел бы сделать это, используя только стандарт Scheme (и это может быть частью R7RS - ищите "Запросы окружения" в списке пунктов, над которыми они, вероятно, будут работать ).
Насколько я могу судить, в настоящее время есть только ad-hoc решений для этого, поэтому вам придется прочитать документацию вашей реализации.
Цыпленок поддерживает это с яйцом oblist
(оно позволяет получить список всех интернированных символов), а также с яйцом environments
, которое позволяет вам конкретно спрашивать, связан ли один символ.
В зависимости от вашей реализации, если возможно, это можно проверить, сделав ссылку на переменную и поймав исключение, а затем проверив, было ли это необязательным исключением или чем-то подобным.