问题标签 [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 投票
4 回答
179 浏览

undefined - VALUE如何?功能工作?

我已将我拥有的一些代码简化为一个小示例,用于测试调用的变量是否class-name具有分配给它的值:

表达式value? 'class-name在这里返回 false。另一方面,如果我用作业填写缺失的分支:

这将为value? 'class-name. 但在第二种情况下,class-name: default-class-name甚至还没有执行。

我认为类名不应该存在于内存中,所以value? 'class-name应该返回false。为什么要value?返回 true 呢?

0 投票
1 回答
126 浏览

scope - What's difference between built-in FUNCTION and the FUNCS add-on?

There is a new implementation of FUNCTION in Rebol 3, which allows making variables automatically bound to local context by default.

FUNCTION seems to have a problem with the VALUE? test, as it returns TRUE even if a variable has not been set at runtime yet:

If you call FOO you will get:

That is not the way FUNC works (it only says BAR has a value after the assignment). But then FUNC does not make variables automatically local.

I found the FUNCS primitive here, in a library created by Ladislav Mecir. How is it different, and does it have the same drawbacks?

http://www.fm.vslib.cz/~ladislav/rebol/funcs.r

0 投票
2 回答
129 浏览

scope - 为什么局部变量变量不被尊重?

在此代码片段fields-types中,最终由to-camel-case函数修改,而不是作为局部变量传递给父函数:

执行给出:

而我希望这些字段类型保持不变:

当然,我可以尝试通过修改to-camel-case以使用名称副本来规避这一点,但这不是我认为我应该做的事情。

Scala中是否有类似varand关键字的东西?val

0 投票
2 回答
407 浏览

rebol - 将引用的参数传递给 REBOL 3 脚本

我发现几乎不可能将带引号的参数(包含空格)传递给 REBOL 3 脚本。例如:

如果检查system/script/args,它包含字符串"foo bar 40"。这是没用的!信息丢失。我需要知道这"foo bar"是第一个论点,40也是第二个论点。如果我检查system/options/args,我会得到以下块:["foo" "bar" "40"]。再次,没用!信息丢失。

我怀疑这个问题的解决方案是使用某种类型的参数分隔符,例如,

这可以很容易地处理PARSE,但我仍然不喜欢它。system/options/args每个传递的参数包含一个字符串应该不是很困难。

REBOL 使用起来很愉快,这是我发现的第一个让我非常失望的东西。:(

0 投票
3 回答
128 浏览

rebol - 如何使用其字符串名称调用对象函数

知道为什么以下不起作用吗?(R3)

0 投票
1 回答
840 浏览

cgi - 如何使用 Rebol 3 编写“Hello, World”CGI?

让我们从一些简单的事情开始:一个带有被回显的字段的表单。

0 投票
1 回答
160 浏览

map - 测试 MAP 成员资格的常用方法!在 Rebol 2 和 3 中工作?

在 Rebol 2 中有一个 HASH!类型以及地图!类型。FIND 和 SELECT 函数以及基于路径的选择都支持这两者:

要检测键不在地图中,您可以使用 FIND 并针对 NONE 进行测试

但是在这种情况下,基于路径的选择会出错:

另一方面,Rebol 3 只有 MAP!。但是 FIND和 SELECT只支持系列类型和 MAP!不再被认为是一个系列。我看到(?)与地图交互的唯一方法是通过路径选择,这在非会员情况下不会引发错误:

...如果您的密钥在变量(或字符串)中,则必须使用 PAREN!

这在 Rebol 2 中也有效,但同样需要注意的是,当您请求不存在的东西时,会抛出错误而不是返回 NONE。

因此,如果我做对了,路径选择是从 Rebol 2 和 3 中的键中检索值的“常见”方式。尽管如此,我没有看到一种常见的测试缺乏成员资格的方式。如何处理这个?

0 投票
1 回答
276 浏览

parsing - Rebol 2 和 Rebol 3 在解析中混合 SOME 和 CHANGE 时的区别

想象一个包含单词的块的简化示例:

每个块都需要[c c c c]。因此,如果值为'a,则将其更改为'b。如果值为'b,则将其更改为'c。如果值为'c,我们打印“C”并继续:

在 Rebol 2 中,这按预期工作:

但是 Rebol 3 似乎有一个问题(错误?):

我不知道它是否相关,但包含Rebol 2 和 Rebol 3 之间要解析的更改列表的 Rebol Wikibook说:

某些子规则 - 为了防止 R3 中出现不必要的无限循环,当子规则与输入匹配但不推进它时,此规则也会停止

(注意:@rgchris 在 StackOverflow 聊天中提供的这个简化示例,在此重复以更好地保留“机构知识”并允许更新。)

0 投票
4 回答
452 浏览

rebol - 你如何为 Rebol 3 编写编解码器?

我为 Rebol 2 编写了一个JSON 编码器/解码器。我正在为 Rebol 3 重写它,并希望将它作为编解码器在 Rebol 3 中提供:

我该怎么办?

在询问时,有关此主题的文档很少。

0 投票
3 回答
140 浏览

unicode - 我如何使用单个字节和二进制文件!Rebol 3 中的字节数组?

在 Rebol 2 中,可以to char!用来产生有效的单字节,您可以在二进制操作中使用,例如 append:

似乎很明智。但是在 Rebol 3 中,你会得到一些不同的东西:

那是因为它没有将单个字符建模为单个字节(由于 Unicode)。所以 (255) 的整数值first data被翻译成一个两字节的序列:

鉴于 CHAR!不再等同于 Rebol 3 中的一个字节,也没有 BYTE!添加了数据类型(使得 BINARY! 可以被视为一系列这些 BYTE!就像 STRING!是一系列 CHAR!),对于这种情况该怎么办?