问题标签 [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.
module - Rebol 模块中的单词是如何绑定的?
我知道该module!
类型为受保护的命名空间提供了比函数更好的object!
结构'use
。模块中的单词是如何绑定的——我注意到一些与未绑定单词相关的错误:
此外,Rebol 是如何区分模块的本地词('foo
)和系统函数的词('set
)?
小更新,不久之后:
我看到有一个开关改变了绑定方法:
这有什么不同?默认情况下使用这种方法有什么问题?
reflection - 为什么 Rebol 3 不尊重带括号的引用函数参数?
DO方言使用PAREN范畴系列!优先级,并且通常会在调用函数之前煮掉底层的括号结构。
但是,在 Rebol 2 中,过去可以在函数定义中指定您希望它在调用点抑制对括号的求值。您通过在参数上使用“文字”撇号标记来做到这一点:
所以你通过了一个系列!类别类型,属于 PAREN!...在这种情况下,内部包含三个符号元素:1
, +
, 2
. 这在 Rebol 3 中不起作用:
这是一个错误还是一个有目的的设计决定?有解决方法吗?请注意,将引号运算符放在调用点不起作用,因为它quote
是被引用的符号词,然后是括号!自行评估以成为表达式的最终值:-/
networking - 如何处理 Rebol 3 方案中的超时时间
在 Rebol 3 中启动异步 IO 事件系统的常用方法是在端口上等待。为了检查超时,将方案中的一个值添加到等待块中。
但是,小电子邮件消息的默认超时可能不适用于数兆字节的文件。
处理这个问题的最佳方法是什么?如果您仍在接收数据,是否可以在脚本接收数据时更新等待列表,以免不必要地超时?
return - 为什么 return/redo 在调用上下文中评估结果函数,但不评估块结果?
return
昨晚我从函数中了解到 /redo 选项。它允许您返回另一个函数,然后在调用站点调用该函数并从同一位置重新调用评估器
尽管它foo
是一个只接受一个参数的函数,但它现在的行为就像一个接受两个参数的函数。否则,类似的事情将要求调用者知道您正在返回一个函数,并且该调用者必须手动对其使用do
评估器。
因此,如果没有return/redo
,您将得到:
foo
消耗它的一个参数并按值返回一个函数(没有调用它,因此解释器继续前进)。然后表达式评估为 10。如果return/redo
不存在,您必须编写:
这使调用者不必知道(或关心)您是否选择返回要执行的函数。并且很酷,因为您可以执行尾调用优化或为返回功能本身编写包装器之类的事情。这是return
打印消息但仍退出函数并提供结果的变体:
但函数并不是唯一在do
. 因此,如果这是“在呼叫站点消除对 DO 的需要”的一般模式,那么为什么不打印任何内容呢?
它只是按值返回块,就像正常返回一样。它不应该打印出“测试”吗?这就是do
......呃,用它来做:
binding - Rebol 2 和 3 之间的绑定行为差异的总结是什么?
当前关于变量绑定目标 Rebol 2的深入文档。有人可以提供 Rebol 2 和 3 之间差异的摘要吗?
rebol - Rebol REPL 多行 if 语句
我尝试在 Rebol REPL(又名命令行)中运行多行 while 语句,如http://www.rebol.com/docs/expert-intro.html
我逐行输入,但在之后if size [
,它说:
这是 REPL 的问题,我输入它的方式,还是其他什么问题?
templates - Rebol 中的“reword”功能是什么?如何使用它?
我今天看到有人提到了这个reword
功能,但是它的文档非常简短。它看起来像 shell 脚本环境变量替换,或者可能是正则表达式替换,但不同。我如何使用这个功能,我会遇到什么样的陷阱?
opengl-es - Raspberry Pi 上 3D 图形的红色/系统绑定
对于刚开始在 Raspberry Pi 上进行 Red/System 编程的人,访问 GPU 进行 3D 渲染的最佳方式是什么?这种方法也可以用于树莓派上的 Rebol3 吗?
rebol - 对于 rebol3:想要开始使用 linux 上的原生扩展。我如何写一个你好世界?
我知道如何编写大约 100 行 C,但我不知道如何读取/组织像 Rebol 这样的较大源代码。某处是关于 hostkit 和 dll 的教程,但似乎 R3 现在是静态链接的。所以我不知道在哪里看。
我将如何编写一个获取值并返回另一个值的本机?把它放在源代码的什么地方?要遵守什么,比如告诉 GC 我在 C 中创建了一些东西?
另外,如何将 R3 嵌入到其他程序中,以便从 Python 或 Node 中调用它?我要求稍后提供 Python/Node 部分。但是我的 learning-main 应该以类似的方式访问 R3。表示dll。在这样的 ffi 中是否有一些用于启动/关闭等的典型钩子?
[编辑:忘了提:它适用于 Rebol 3。]