问题标签 [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 回答
2188 浏览

command-line - 使用`command-line`函数在Scheme中获取命令行参数

这个问题之前肯定有人问过,here。除了command-line在. _ _r6rs-lib

我设法通过以下方式实现了我想要的Gauche(非 r6rs 兼容的实现)*argv*

我想做与使用该功能兼容的Petite Chez Scheme相同r6rs操作command-line。我尝试使用该章中的代码,但我得到的只是一个包含脚本名称的列表,并且只有第一个参数。例如

是否还有其他一些我缺少的库导入可以使它工作

0 投票
0 回答
308 浏览

scheme - 如何在 DrRacket 中更改 R6RS 的打印行为以打印结果,例如使用#lang racket

当我在 IDE 中运行程序时,版本为 5.3.5--2013-06-18(-/f),#lang racket例如。

按下Run >时,交互窗口会"9\n5\n"打印到交互窗口。与版本相同R6RS

Run >语言为R6RS. 有没有什么地方可以改变这种行为,Preferences也许?

0 投票
1 回答
579 浏览

scheme - r6rs 和定义记录类型

大家好,

对于课程,我必须导入一些库。

我遇到了一个错误,在检查了库之后,问题基本上归结为

给出此错误的r6rs:define-record-type:模块中的未绑定标识符:define-record-type

在这个图书馆:

0 投票
1 回答
61 浏览

scheme - 词法作用域和语法案例

我正在尝试编写模式匹配宏。我还没有走多远,但我已经很困惑了。我的测试代码如下

执行此操作会产生输出(1 2 3)

老实说,我写这段代码是因为它会失败。我认为从返回的语法parse-clauses是指未定义的符号x。但似乎#'x返回的parse-clauses确实引用x了 lambda 表达式中的参数。我不知道为什么。

这种细微的变化让我更加困惑。

这会产生错误x: identifier used out of context in: x。我理解的这个错误x是在本地绑定的parse-clauses,但是我在该范围之外使用了引用,所以我得到了一个错误。

我想我要说的是第二个示例表明词法上下文很重要,但在第一个示例中没有词法绑定,x那么它为什么最终引用了不相关的绑定?

我希望这不会太混乱,欢迎任何解释。

我正在使用球拍 5.3.6。

0 投票
1 回答
787 浏览

scheme - R6RS 的 `letrec`、`letrec*` 和 Racket 的 `letrec` 有什么区别?

两者letrecletrec*都在 R6RS 中,但只有 letrec在 Racket 中,没有letrec*。这些之间有什么区别?

0 投票
1 回答
131 浏览

exception - 如何在 Scheme 中检查一个值是否属于“错误”类型?

Scheme r6rs 标准库手册建议,如果我导入库,(rnrs exceptions (6))我应该能够调用(error? val)以检查给定值是否为&error类型。我想这样做以进行单元测试。我已将库添加到我的导入标头中并且代码编译,所以我知道导入工作正常。但是 DrRacket 仍然认为error?是未定义的。有谁知道这里发生了什么?

我的代码:

0 投票
6 回答
631 浏览

inheritance - 是否可以在 Scheme 中“扩展”函数/lambda/宏?

例如:如果我想让函数equal?识别我自己的类型或记录,我可以添加一个新的行为equal?吗?不擦除或覆盖旧的?

或者例如,如果我想让函数"+"也接受字符串?

0 投票
1 回答
263 浏览

scheme - 精确/不精确的结果,例如 sqrt 和整数根

R6RS 3.4 实施要求如下

...当应用于精确参数时,可能不精确的操作sqrt应该尽可能产生精确的答案(例如,精确 4 的平方根应该是精确 2)。

(1) 这是否意味着(* 0 2.2)必须产生0.0但从不0作为结果?

但是,这不是必需的。...

(2) 这是否意味着也(/ 4 2)可能产生2.0作为结果?

(3) 是否有以这种方式提供整数根的实现?一般来说,我如何获得整数平方根的功能?(这里是索引)(请不要递归/迭代实现)

0 投票
3 回答
401 浏览

list - 球拍列表与 r6rs 不兼容?

我正在编写一个程序,我必须在其中重用我的一位教授的代码。我的程序是用 Racket 编写的,而我想重用的代码是用 r6rs 编写的。

当我想测试我的程序时,它总是失败。这是因为我调用了一个以列表(球拍列表)为参数的过程,但该过程位于 R6RS 文件中。在 R6RS 文件中有(assert (list? argument)),这总是错误的......

这里有一个简单的例子:球拍代码:

R6RS 代码:

R6RS 文件中的list?测试总是错误的......即使我将新创建的列表作为参数传递,就像上面的例子一样。

我怎样才能像上面的例子一样做,以便list?测试结果为真。

谢谢你的帮助!

编辑:我在不可变列表上找不到导致 true 的 r6rs 测试,但我找到了另一种解决问题的方法(通过将可变列表传递给过程)。

0 投票
2 回答
219 浏览

file - 将字符串附加到 IronScheme 中的现有文本文件

我们正在尝试使用 IronScheme 构建一个日志文件,并且我们已经使用球拍为其编写了代码。它在球拍中运行良好,但 IronScheme 会引发错误。这是我们目前所拥有的:

看看我们在使用 with-output-to-file 时如何使用“exists”可选参数。我们不确定如何使此可选参数与 IronScheme 一起使用。有什么方法可以让这个工作,或替代方法?

请注意,我们希望将字符串附加到现有的 .txt 文件中。如果我们不使用可选参数,则会抛出一个错误,说明文件已经存在。