问题标签 [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 - R6RS 与 R5RS 方案
我对方案比较陌生,很难在网上找到一份具体的文档来概述 R6RS 发生的主要变化。有人愿意详细说明吗?
scheme - 从库中导出填充的哈希表
这是一个导出哈希表的库。该库还包含填充哈希表的表达式:
这是另一个版本的库,它导出可用于填充哈希表的过程:
采取第一种方法是否被认为是不好的形式?即有一个也执行任意表达式的库?这种方法有缺点吗?
一个相关的问题......在库中,非定义表达式必须出现在定义之后。为了解决这个限制,我使用了这个宏:
例如:
同样,通过这种解决方法散布表达式和定义是否有缺点?
scheme - 在 R6RS 方案中,有没有办法让当前环境与 eval 一起使用?
R6RS Scheme 中是否有任何方法可以获取当前环境,然后将其作为第二个参数传递给eval
?
例如,以下表达式返回 9 的问号应该是什么?
scheme - 矢量地图的ikarus实现
这段代码在 Ikarus 的实现中vector-map
:
为什么命名的 let 包含参数p
,v
和n
?
的完整定义vector-map
如下。
scheme - 自由标识符=?和绑定标识符=?
试图理解 free-identifier=? 和绑定标识符=?。谁能给我使用 free-identifier= 的等效代码示例?将返回 true 并使用 bound-identifier=? 将返回错误。
谢谢
scheme - 如何编写维护本地状态的宏?
这似乎可行,它是一个宏,可以根据扩展的次数扩展为连续的整数。
但这对我来说很笨拙,因为宏状态*count*
和宏m
本身位于不同的模块中。在 r6rs 中是否有更好的方法来执行此操作,最好是不将实现拆分为两个模块的方法?
编辑
我应该明确一点,虽然这个例子只是一个宏,但实际上我正在寻找一种在多个宏需要共享状态时有效的方法。
lambda - ((lambda () )) 的简写
((lambda () )) 的方案中是否有简写
例如,而不是
我希望能够做类似的事情
scheme - 方案中的平台(OS)检测
那一定是这样的:
老实说,我认为我的方案实现无论如何都做不到,但我可以自由地为它添加实现。平台检测的常用方案语法是什么?
谢谢你
scheme - 平等的?和记录类型
假设我有以下方案(R6RS)代码:
我创建了两条记录:
我不明白为什么(equal? X Y)
并(equal? (make-typeA 123) (make-typeA 123))
返回#f
。
我阅读了 R6RS 标准(第 11.5 节),但我并没有真正理解它。
scheme - 编写一个什么都不做的延续
也许我的问题有一个非常简单的答案,但我找不到。
在 Scheme R6RS 中,我如何构建一个什么都不做且需要任何参数的延续?
我的目标是继续,让我们QUIT
这样命名,如果我有以下代码:
它预印了 1 和 2,但不是 "A"。+
你能帮助我吗?
谢谢你。