问题标签 [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.
parsing - 如何解析不在块中的项目像单个元素块一样处理的项目序列?
我有一个需要等价的情况,例如:
...就像你写的那样处理:
增加一点复杂性的是,如果您将项目放在一个块中,那么它可以有参数:
我想要一个基于 PARSE 的引擎,它可以为 、 和 (我们称之为 STRING-HANDLER) 运行相同的处理程序{Foo}
,[{Foo}]
并且[{Foo} /some-refinement]
只需使用正确数量的参数调用它。
在没有 PARSE 的情况下编写这个很容易......单个元素被包装在一个临时块中(如果它不是一个块)。然后在 CASE 语句中测试第一项。但我想将其转换为基于 PARSE 的,其中一个分支使用 INTO 而另一个不使用,无需重复代码。
它需要支持嵌套,因此您可能最终会处理以下内容:
character-encoding - 使用 Rebol 3 执行文件编码转换
我想使用 Rebol 3 读取 Latin1 中的文件并将其转换为 UTF-8。是否有我可以使用的内置函数或一些外部库?我在哪里可以找到它?
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?
parsing - 如何将变量设置为匹配 Rebol PARSE 中多个元素的规则的结果?
想象一个简单的例子,我们想把字符串"0-5"
变成"012345"
.
这有效:
结果是:
但是,如果我想要更一般的东西,那可能会"10-12"
变成"101112"
,或者更远呢?这不起作用:
它不起作用的原因是因为它没有set a [some char!]
捕获字符串,而是错误:
作为一个额外的问题,为什么会失败并且使用 skip 只返回第一个数字?
...whensome skip
和some char!
match 在字符串上等效,因为字符串中唯一要跳过的是字符...?
recursion - Rebol 尾调用优化
我来自函数式编程背景,首先考虑问题的递归解决方案而不是迭代解决方案。我开始使用 Rebol(特别是 R3),并使用带有累加器的尾递归函数编写了质数因子 kata 的解决方案。但是对于任何足够大的输入,我都会破坏堆栈。我有一个名为“tail-func.r”的 Rebol2 脚本,它实现了 AFAIK 尚未移植到 R3 的尾调用优化版本。我知道 Rebol 3 在许多情况下实现的东西与 R2 不同,那么有没有办法在 Rebol 3 中获得 TCO 而无需任何额外代码?如果没有,是否有更简单的方法可以在不移植旧脚本的情况下获得它?
编辑添加我的代码:
unicode - Rebol 3 R3-GUI 字段是否支持非 ascii 字符串输入?
该sometext
字段现在只接受 ASCII 字符作为输入:
parsing - 如何在 REBOL 的 PARSE 中进行本地单词分配?
我需要一个使用PARSE
和COPY x
规则的函数,但不会x
在函数之外更改。我尝试使用FUNCTION
让它自动拾取本地x
,但它不起作用:
cgi - 如何写入系统/端口/输入?
我可以读取system/ports/input
(例如 CGI 数据),但是我如何写入这个端口以便我可以使用它来读取它read system/ports/input
?
write system/ports/input some-data
返回错误不能在端口上使用写入!价值
rebol - 如何从一系列函数中检索一个函数并调用它
我正在尝试在 Rebol 3 中创建一个函数调度程序,以便程序接收到的每个字符串都有一个要调用的关联函数。
例如:
其中foo-func
和bar-func
是函数:
这个想法是select
从字符串开始的函数,所以:
这样执行f
与执行foo-func
然后f
使用一些参数调用相同:
我尝试引用map!
, 或使用 get-words 中的单词但没有成功。
在控制台上使用 a get-word!
,而不通过 amap!
它可以工作:
任何帮助表示赞赏。
function - 如何用细化来包装一个函数,这样就不需要细化了?
我试图以一种通用的方式用改进来包装函数,这样就可以在没有改进的情况下调用它们。例如,ARRAY-INITIAL size value
而不是ARRAY/INITIAL size value
不太花哨。似乎通常可以工作,但是如果您使用函数调用它,这会有些奇怪:
当我source
得到这个时:
好的,所以发生的事情是函数在包装器中被调用并且调用的结果被传递......而不是函数。一种解决方法是使用 get-word 来避免评估:
但我正在寻找一种通用的方法。在不发生这种情况的情况下代理参数的最佳方法是什么?