|..ident..|
- это разделители для символов в R7RS, чтобы разрешить любой символ, который нельзя вставить в символ старого стиля (|
- это разделитель).
Однако в R6RS "official"
грамматика была неправильной, поскольку она не позволяла определять символы так, чтобы 1+
, что привело к тому, что все реализации определяли свои собственные правила для преодоления этой болезни официальной грамматики.
Если вам не нужно читать исходный код данной реализации и видеть, как она определяет символы, вам не следует слишком заботиться об этих правилах и использовать классические символы.
В разделе 7.1.1 вы найдете форму backus-naur, которая определяет лексическую структуру идентификаторов R7RS, но я сомневаюсь, что реализации следуют ей.
Я цитирую здесь
Как и в случае с идентификаторами, различные реализации Схемы используют немного разные правила, но всегда имеет место, что последовательность символов, которые не содержат специальных символов и начинаются с символа, который не может начинаться с числа, считается символом
Другими словами, реализация будет использовать такую функцию, как read-atom и после этого он будет классифицировать атом путем обратного просмотра с номером чтения, а если номер? не может быть символом.