【问题标题】:Determining if OZ variable is bound?确定 OZ 变量是否已绑定?
【发布时间】:2014-03-23 21:27:36
【问题描述】:

有没有一种安全的方法来询问 OZ 中的单个赋值变量是否已绑定?

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

我正在寻找一些函数“绑定”在哪里

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

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

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

【问题讨论】:

    标签: declarative oz


    【解决方案1】:

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

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

    请注意:如果您使用多个线程,则会为竞争条件打开大门。

    【讨论】:

      猜你喜欢
      • 2015-07-26
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 2016-01-31
      • 2021-10-06
      • 1970-01-01
      相关资源
      最近更新 更多