Что делает следующий код схемы Guile?
(eq? y '.)
(cons x '.)
Код недействителен в MzScheme, есть ли переносимый эквивалент для разных реализаций схемы?
Я пытаюсь перенести этот код, написанный кем-то другим. Коварство, кажется, отвечает на '. с # {.} #, но я не уверен, что это значит и как это сделать в другой схеме.





Я удивлен, что любая система Scheme вообще принимает символ точки. Мой совет - использовать другой символ, поскольку (я уверен, вы знаете) точка - это сокращение для представления пары, и даже если вы найдете схему, которая будет принимать ваш код, вы, вероятно, запутаете любого, у кого есть неудачный задача фактического чтения вашего кода.
Ладно, кажется, что ». является допустимым синтаксисом для (строка-> символ ".") в Guile, тогда как MzScheme требует как минимум |. | на период как символ.
#{.}# - это специфичный для Guile способ определения символа, содержащий некоторые разделители схемы.
http://www.gnu.org/software/guile/manual/html_node/Symbol-Read-Syntax.html
Для другого диалекта Scheme должен быть другой способ.
Символы могут содержать последовательность символов любой, которая будет допустимой в строке, и вы можете вставить любую строку в символ, используя
string->symbol. Однако символы, которые вы можете написать как голые токены, без использования вертикальной черты или обратной косой черты, представляют собой гораздо меньшее подмножество.