R6RS:应用于空列表的语法表达形式是否返回包装的语法对象?

时间:2018-10-15 09:17:45

标签: scheme racket r6rs chez-scheme

在R6RS方案中考虑以下表达式:

(syntax ())

当我在Racket中键入此表达式时,将返回一个(包装的)语法对象。另一方面,相同的表达式在Chez Scheme中产生(未包装的)空列表。

我想知道哪个系统符合R6RS(或者该标准是否允许两种行为)。 R6RS中的相关段落为Parsing input and producing output。在那里,它说:

  

根据以下规则包装或展开由语法产生的输出   ...   不包含任何模式变量的任何部分的副本都是包装的语法对象。

(syntax ())中,模板不包含任何模式变量,因此结果似乎应该是包装的语法对象,并且Racket是正确的。

另一方面,Chez Scheme的作者R. Kent Dybvig是syntax-case系统的发明者之一,因此人们希望Chez Scheme严格遵循该标准。

0 个答案:

没有答案