问题标签 [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.
scheme - 如何在 DrRacket 中更改 R6RS 的打印行为以打印结果,例如使用#lang racket
当我在 IDE 中运行程序时,版本为 5.3.5--2013-06-18(-/f),#lang racket
例如。
按下Run >时,交互窗口会"9\n5\n"
打印到交互窗口。与版本相同R6RS
当Run >语言为R6RS
. 有没有什么地方可以改变这种行为,Preferences
也许?
scheme - r6rs 和定义记录类型
大家好,
对于课程,我必须导入一些库。
我遇到了一个错误,在检查了库之后,问题基本上归结为
给出此错误的r6rs:define-record-type:模块中的未绑定标识符:define-record-type
在这个图书馆:
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。
scheme - R6RS 的 `letrec`、`letrec*` 和 Racket 的 `letrec` 有什么区别?
两者letrec
和letrec*
都在 R6RS 中,但只有 letrec
在 Racket 中,没有letrec*
。这些之间有什么区别?
exception - 如何在 Scheme 中检查一个值是否属于“错误”类型?
Scheme r6rs 标准库手册建议,如果我导入库,(rnrs exceptions (6))
我应该能够调用(error? val)
以检查给定值是否为&error
类型。我想这样做以进行单元测试。我已将库添加到我的导入标头中并且代码编译,所以我知道导入工作正常。但是 DrRacket 仍然认为error?
是未定义的。有谁知道这里发生了什么?
我的代码:
inheritance - 是否可以在 Scheme 中“扩展”函数/lambda/宏?
例如:如果我想让函数equal?
识别我自己的类型或记录,我可以添加一个新的行为equal?
吗?不擦除或覆盖旧的?
或者例如,如果我想让函数"+"
也接受字符串?
scheme - 精确/不精确的结果,例如 sqrt 和整数根
...当应用于精确参数时,可能不精确的操作
sqrt
应该尽可能产生精确的答案(例如,精确 4 的平方根应该是精确 2)。
(1) 这是否意味着(* 0 2.2)
必须产生0.0
但从不0
作为结果?
但是,这不是必需的。...
(2) 这是否意味着也(/ 4 2)
可能产生2.0作为结果?
(3) 是否有以这种方式提供整数根的实现?一般来说,我如何获得整数平方根的功能?(这里是索引)(请不要递归/迭代实现)
list - 球拍列表与 r6rs 不兼容?
我正在编写一个程序,我必须在其中重用我的一位教授的代码。我的程序是用 Racket 编写的,而我想重用的代码是用 r6rs 编写的。
当我想测试我的程序时,它总是失败。这是因为我调用了一个以列表(球拍列表)为参数的过程,但该过程位于 R6RS 文件中。在 R6RS 文件中有(assert (list? argument))
,这总是错误的......
这里有一个简单的例子:球拍代码:
R6RS 代码:
R6RS 文件中的list?
测试总是错误的......即使我将新创建的列表作为参数传递,就像上面的例子一样。
我怎样才能像上面的例子一样做,以便list?
测试结果为真。
谢谢你的帮助!
编辑:我在不可变列表上找不到导致 true 的 r6rs 测试,但我找到了另一种解决问题的方法(通过将可变列表传递给过程)。
file - 将字符串附加到 IronScheme 中的现有文本文件
我们正在尝试使用 IronScheme 构建一个日志文件,并且我们已经使用球拍为其编写了代码。它在球拍中运行良好,但 IronScheme 会引发错误。这是我们目前所拥有的:
看看我们在使用 with-output-to-file 时如何使用“exists”可选参数。我们不确定如何使此可选参数与 IronScheme 一起使用。有什么方法可以让这个工作,或替代方法?
请注意,我们希望将字符串附加到现有的 .txt 文件中。如果我们不使用可选参数,则会抛出一个错误,说明文件已经存在。