Rebol 3中的所有端口操作都是异步的.我可以找到进行同步通信的唯一方法是调用wait.
但是在这种情况下调用wait的问题是它将检查所有开放端口的事件(即使它们不在传递给等待的端口块中).然后他们调用响应事件处理程序,但可以在其中一个事件处理程序中完成读/写操作.这可能导致递归调用"等待".
我该如何解决这个问题?
据我所知,该module!类型为受保护的命名空间提供了比object!该'use函数更好的结构.如何在模块中绑定单词 - 我注意到与未绑定单词相关的一些错误:
REBOL [Type: 'module] set 'foo "Bar"
Run Code Online (Sandbox Code Playgroud)
另外,Rebol如何区分module('foo)的本地字和系统函数('set)的字?
稍后更新,不久之后:
我看到有一个改变绑定方法的开关:
REBOL [Type: 'module Options: [isolate]] set 'foo "Bar"
Run Code Online (Sandbox Code Playgroud)
这有什么不同的做法?默认情况下使用此方法有什么问题?
我是Rebol的新手,我正在与一个小型企业集团合作,评估它在某些领域的使用,这些领域一次又一次地证明了自己对变革和DSL等概念的高度抵制.
任何人都可以建议他们通过"解析"找到一个很好的介绍方式吗?我一直在阅读Rebol 3网站上的可用文档,以及Auverlot和Wood的程序员指南,这可能绰绰有余 - 但如果有人对其他相关材料或示例有建议,我会很感激的建议.
PS:我也是stackoverflow的新手,所以还没有神奇的20分聊天...
我reword今天看到有人提到这个功能,但是它的文档非常简短.它看起来像shell脚本环境变量替换,或者可能是正则表达式替换,但不同.我如何使用此功能以及我将遇到什么样的陷阱?
有很多很好的小型Web服务器用Rebol 2编写,但Rebol 3有不同的网络模型,我正在寻找一个可以使用它的网络服务器.
我不是在寻找任何花哨的东西.它只是在嵌入式主板上运行,让我使用Rebol 3控制我家周围的Insteon设备 - 这比其他方法更容易和更清洁.
请不要回复非基于Rebol的Web服务器.我对使用它们不感兴趣.
下面这个函数的目的是返回一个在两个星之间插入参数值的字符串.
star-name: func [name /local stars] [
stars: "**"
insert next stars name
stars
]
print star-name "test" ;*test*
print star-name "this" ;*thistest*, but what I really want is *this*
Run Code Online (Sandbox Code Playgroud)
第二次调用函数时,第一次调用的参数仍然是插入的.我知道答案是使用copy "**".我的问题是,每次调用函数时,它是否都不会重新分配stars变量"**"?
让我们从一些简单的东西开始:一个带有一个可以回显的字段的表单.
我注意到REBOL没有内置if...elsif...else语法,就像这样:
theVar: 60
{This won't work}
if theVar > 60 [
print "Greater than 60!"
]
elsif theVar == 3 [
print "It's 3!"
]
elsif theVar < 3 [
print "It's less than 3!"
]
else [
print "It's something else!"
]
Run Code Online (Sandbox Code Playgroud)
我找到了一个解决方法,但它非常冗长:
theVar: 60
either theVar > 60 [
print "Greater than 60!"
][
either theVar == 3 [
print "It's 3!"
][
either theVar < 3 [
print "It's less than 3!"
][
print "It's …Run Code Online (Sandbox Code Playgroud) Rebol2对FIND函数有一个/ ANY细化,可以进行通配符搜索:
>> find/any "here is a string" "s?r"
== "string"
Run Code Online (Sandbox Code Playgroud)
我在需要运行良好的紧密循环中广泛使用它.但是在Rebol3中删除了细化.
在Rebol3中最有效的方法是什么?(我猜是某种parse解决方案.)