scheme - R6RS:应用于空列表的语法表达式形式是否返回包装的语法对象?
问题描述
考虑 R6RS 方案中的以下表达式:
(syntax ())
当我在 Racket 中键入这个表达式时,会返回一个(包装的)语法对象。另一方面,相同的表达式在 Chez Scheme 中产生(展开的)空列表。
我想知道哪个系统符合 R6RS(或者标准是否允许这两种行为)。R6RS 中的相关段落是解析输入并产生输出。在那里,它说:
语法产生的输出根据以下规则进行包装或解包......不包含任何模式变量的任何部分的副本都是一个包装的语法对象。
在(syntax ())
模板中不包含任何模式变量,所以看起来结果应该是一个包装的语法对象,并且 Racket 是对的。
另一方面,Chez Scheme 的作者 R. Kent Dybvig 是该syntax-case
系统的发明者之一,因此人们期望 Chez Scheme 严格遵循该标准。
解决方案
推荐阅读
- c# - 为什么我的相关数据没有更新并在我的 ASP.NET Core 应用程序中出现空引用错误?
- html - 单击按钮获取用户输入数据
- c# - C# - 比较列表
到动态列表 - asp.net-mvc - Asp .net httpClient web api 操作参数间歇性地为空
- ruby-on-rails - 我如何在rails中通过id渲染两个表的内容
- javascript - 使用剑道投掷错误将 div 导出为 pdf 多页
- sql - 我怎样才能对周进行排序
- javascript - Birt 脚本数据源 Javascript 代码未执行
- google-chrome-extension - 铬替换新标签
- html - CSS 动画从 0 到 100 扩展宽度并从 0 到 100 隐藏