问题标签 [r6rs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4556 浏览

scheme - Guile 方案和标准方案之间的区别(在 Racket IDE 中)?

我有一堆想要在 Racket Scheme IDE 中运行的“遗留”Guile Scheme 代码。似乎有足够的差异使这成为一项重要的练习。(我的 Scheme 知识水平是完成 The Little Schemer 的水平)。

我的问题是:

  1. Guile 方案和标准方案(在 Racket IDE 中)有什么区别?
  2. 鉴于这些差异,一般来说,我需要采取哪些步骤将一些 Guile 方案代码转换为标准方案?

附加:(对 Racket Scheme 和 R5RS/R6RS 之间的分歧感到高兴)-我想要的是在 Racket IDE 中运行“某些东西”-而不是在 Racket 语言中运行。

0 投票
1 回答
87 浏览

scheme - 如何获取库导出的所有符号的列表?

有没有一种方法可以获取库导出的所有方法的列表?

0 投票
2 回答
300 浏览

scheme - 打印变量名

在 Scheme R6RS 中是否可以打印变量的名称?我是说:

这样:

0 投票
1 回答
346 浏览

scheme - 方案 R6RS 中的选择器

我在看一本旧书

简单的方案:介绍计算机科学

你可以在这里找到它。

第五部分介绍了“选择器”,操作符如下:

等等..

R6RS中是否存在类似的东西?(因为未定义此运算符)。

0 投票
1 回答
87 浏览

scheme - Scheme中如何正确实现对象继承

作为练习,我正在尝试实现一个小型的面向对象程序,有 2 个类:

我已经将每个类都实现为闭包。这是第一个的代码:

第二个:

我对第二个定义有一些问题;在最后一行我尝试调用父母方法,但由于args是一个列表,它不起作用。

我能做些什么?

0 投票
1 回答
213 浏览

scheme - 如何捕获语法异常

我想通过一个测试语法异常的宏来扩展 srfi-78。我想要这样的东西:

有可能吗?如果不是,您将如何为宏编写测试?

test-read-eval-string从 srfi-64 得知。它接受一个字符串,将其转换为一个表单并在初始环境中评估该表单。我想要一个在当前环境中评估给定形式并捕获异常的宏。

0 投票
1 回答
60 浏览

antlr4 - 基准跳过注释“#;” 在使用 ANTLR4 为 R6RS 制作解析器时

我正在尝试为 R6RS 编写词法分析器/解析器,但我遇到了数据跳过评论

这是我的词法分析器/解析器规则的一部分:

现在,我想像这样写skipDatum: '#;' datum -> skip。不幸的是,解析器规则不允许->skip. 两者都SKIPDATUM: '#;' datum -> skip不起作用,因为词法分析器规则不能引用解析器规则。

在我看来,虽然“注释掉”是词法分析器的责任,而“构造数据”是解析器的责任,但#;两者都需要规则。

这是我目前的解决方案:

虽然它正在工作,但它看起来很丑陋;在我真的想用 写规则的地方datum,我总是必须这样写skipDatum* datum skipDatum*

有没有更好的解决方案?提前致谢。

0 投票
2 回答
145 浏览

scheme - R6RS 库体:表达式后定义

考虑以下代码:

来自R6RS 报告 7.1

<library body> 类似于 <body>(参见第 11.3 节),只是 <library body> 不需要包含任何表达式。它必须具有以下形式:

<definition> ... <expression> ...

我认为它会发出错误,因为定义c是在表达式之后'cont,但是这个程序被干净地接受了。

在那之后,我认为a并且c可以出口。但是,不是cb可以导出。(a可以像我想的那样导出。)

我认为关于 R6RS 库规则我没有意识到一些事情。我错过了什么?提前致谢。

ps)我正在使用 Racket v5.3.3

0 投票
0 回答
413 浏览

racket - 使用 R6RS 中的模块时预计会违反合同

我有以下模块abc/main.rkt

这是一个导入该模块的简短 R6RS 程序:

加载该程序时,此错误消息出现在 DrRacket 窗口的底部:

+:预期违反合同:数量?给定:#f 参数位置:第一个其他参数...:0

但是,我能够成功运行该程序。

关于如何摆脱错误的任何建议?

0 投票
2 回答
1183 浏览

compiler-construction - 是否有不同“RnRS”方案标准的摘要?

我需要为学术编译器实现选择一个方案标准。它必须足够简单,但仍然应该是一种强大的语言。Scheme有几个(RRS-R7RS)标准。这些报告是否有公开比较以供选择?如果不是,您会推荐哪一个作为第一个编译器?