Рассмотрим следующее выражение в схеме R6RS:
(syntax ())
Когда я набираю это выражение в Racket, возвращается (обернутый) объект синтаксиса.С другой стороны, то же самое выражение выдает (развернутый) пустой список в схеме Chez.
Мне интересно, какая система соответствует R6RS (или разрешено ли оба поведения стандартом).Соответствующий параграф в R6RS - Анализ входных данных и получение выходных данных .Там написано:
Вывод, полученный с помощью синтаксиса, оборачивается или разворачивается в соответствии со следующими правилами ... копия любой части, не содержащей переменных шаблона, является объектом обернутого синтаксиса.
В (syntax ())
шаблон не содержит никаких переменных шаблона, поэтому кажется, что результатом должен быть обернутый синтаксический объект и что Racket прав.
С другой стороны, RКент Дибвиг, автор схемы Chez, является одним из изобретателей системы syntax-case
, поэтому можно ожидать, что схема Chez будет строго следовать стандарту.