确定OZ变量是否绑定?

时间:2014-03-23 21:27:37

标签: declarative oz

有没有一种安全的方法来询问OZ中的单个赋值变量是否受约束?

以需要该值的方式使用未分配的数据流变量将导致程序等待直到分配值。在顺序环境中,这意味着程序挂起。为变量分配不同的值将导致程序失败。所以两种方式都会告诉"我,如果变量是绑定的,但不是安全的。

我正在寻找一些功能" Bound"其中

local X Y=1 Xbound YBound in 
   Xbound={Bound? X}
   Ybound={Bound? Y}
end

分别对Xbound和Ybound给出false和true。

我的用例涉及处理一个列表,其中值以递增方式添加,最后一个值始终为未绑定。我想使用最后绑定的项目(未绑定的项目之前的那个项目。)并且我尝试在OZ范例中工作,添加的概念最少(因此没有可变变量或异常。)

1 个答案:

答案 0 :(得分:1)

您可以检查变量是否与函数IsDet绑定。

请参阅此处:http://mozart.github.io/mozart-v1/doc-1.4.0/base/node4.html(也适用于Mozart 1.3.0)

请注意:如果您使用多个线程,这将为比赛条件打开大门。