问题标签 [rebol3]

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 回答
81 浏览

parsing - 如何解析不在块中的项目像单个元素块一样处理的项目序列?

我有一个需要等价的情况,例如:

...就像你写的那样处理:

增加一点复杂性的是,如果您将项目放在一个块中,那么它可以有参数:

我想要一个基于 PARSE 的引擎,它可以为 、 和 (我们称之为 STRING-HANDLER) 运行相同的处理程序{Foo}[{Foo}]并且[{Foo} /some-refinement] 只需使用正确数量的参数调用它。

在没有 PARSE 的情况下编写这个很容易......单个元素被包装在一个临时块中(如果它不是一个块)。然后在 CASE 语句中测试第一项。但我想将其转换为基于 PARSE 的,其中一个分支使用 INTO 而另一个不使用,无需重复代码。

它需要支持嵌套,因此您可能最终会处理以下内容:

0 投票
4 回答
338 浏览

character-encoding - 使用 Rebol 3 执行文件编码转换

我想使用 Rebol 3 读取 Latin1 中的文件并将其转换为 UTF-8。是否有我可以使用的内置函数或一些外部库?我在哪里可以找到它?

0 投票
2 回答
307 浏览

rebol - Rebol COLLECT: keep the order of the source data in a loop

There is some source data, like [1 2 3 4 "a" "b" "c" "d"], four items as a group. I want to extract some data at specific positions, such as the first, third, and fourth from each group.

There is my code:

But what I really want is [1 3 4 "a" "c" "d"]. How can I keep the order?

0 投票
2 回答
145 浏览

parsing - 如何将变量设置为匹配 Rebol PARSE 中多个元素的规则的结果?

想象一个简单的例子,我们想把字符串"0-5"变成"012345".

这有效:

结果是:

但是,如果我想要更一般的东西,那可能会"10-12"变成"101112",或者更远呢?这不起作用:

它不起作用的原因是因为它没有set a [some char!]捕获字符串,而是错误:

作为一个额外的问题,为什么会失败并且使用 skip 只返回第一个数字?

...whensome skipsome char!match 在字符串上等效,因为字符串中唯一要跳过的是字符...?

0 投票
1 回答
251 浏览

recursion - Rebol 尾调用优化

我来自函数式编程背景,首先考虑问题的递归解决方案而不是迭代解决方案。我开始使用 Rebol(特别是 R3),并使用带有累加器的尾递归函数编写了质数因子 kata 的解决方案。但是对于任何足够大的输入,我都会破坏堆栈。我有一个名为“tail-func.r”的 Rebol2 脚本,它实现了 AFAIK 尚未移植到 R3 的尾调用优化版本。我知道 Rebol 3 在许多情况下实现的东西与 R2 不同,那么有没有办法在 Rebol 3 中获得 TCO 而无需任何额外代码?如果没有,是否有更简单的方法可以在不移植旧脚本的情况下获得它?

编辑添加我的代码:

0 投票
2 回答
303 浏览

unicode - Rebol 3 R3-GUI 字段是否支持非 ascii 字符串输入?

sometext字段现在只接受 ASCII 字符作为输入:

0 投票
2 回答
105 浏览

parsing - 如何在 REBOL 的 PARSE 中进行本地单词分配?

我需要一个使用PARSECOPY x规则的函数,但不会x在函数之外更改。我尝试使用FUNCTION让它自动拾取本地x,但它不起作用:

0 投票
2 回答
109 浏览

cgi - 如何写入系统/端口/输入?

我可以读取system/ports/input(例如 CGI 数据),但是我如何写入这个端口以便我可以使用它来读取它read system/ports/input

write system/ports/input some-data返回错误不能在端口上使用写入!价值

0 投票
4 回答
190 浏览

rebol - 如何从一系列函数中检索一个函数并调用它

我正在尝试在 Rebol 3 中创建一个函数调度程序,以便程序接收到的每个字符串都有一个要调用的关联函数。

例如:

其中foo-funcbar-func是函数:

这个想法是select从字符串开始的函数,所以:

这样执行f与执行foo-func然后f使用一些参数调用相同:

我尝试引用map!, 或使用 get-words 中的单词但没有成功。

在控制台上使用 a get-word!,而不通过 amap!它可以工作:

任何帮助表示赞赏。

0 投票
3 回答
233 浏览

function - 如何用细化来包装一个函数,这样就不需要细化了?

我试图以一种通用的方式用改进来包装函数,这样就可以在没有改进的情况下调用它们。例如,ARRAY-INITIAL size value而不是ARRAY/INITIAL size value

不太花哨。似乎通常可以工作,但是如果您使用函数调用它,这会有些奇怪:

当我source得到这个时:

好的,所以发生的事情是函数在包装器中被调用并且调用的结果被传递......而不是函数。一种解决方法是使用 get-word 来避免评估:

但我正在寻找一种通用的方法。在不发生这种情况的情况下代理参数的最佳方法是什么?