R6RS: Возвращает ли форма выражения синтаксиса, примененная к пустому списку, обернутый объект синтаксиса? - PullRequest
0 голосов
/ 15 октября 2018

Рассмотрим следующее выражение в схеме R6RS:

(syntax ())

Когда я набираю это выражение в Racket, возвращается (обернутый) объект синтаксиса.С другой стороны, то же самое выражение выдает (развернутый) пустой список в схеме Chez.

Мне интересно, какая система соответствует R6RS (или разрешено ли оба поведения стандартом).Соответствующий параграф в R6RS - Анализ входных данных и получение выходных данных .Там написано:

Вывод, полученный с помощью синтаксиса, оборачивается или разворачивается в соответствии со следующими правилами ... копия любой части, не содержащей переменных шаблона, является объектом обернутого синтаксиса.

В (syntax ()) шаблон не содержит никаких переменных шаблона, поэтому кажется, что результатом должен быть обернутый синтаксический объект и что Racket прав.

С другой стороны, RКент Дибвиг, автор схемы Chez, является одним из изобретателей системы syntax-case, поэтому можно ожидать, что схема Chez будет строго следовать стандарту.

...