0

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

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

我正在寻找一些功能“绑定”在哪里

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

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

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

4

1 回答 1

1

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

见这里: http: //mozart.github.io/mozart-v1/doc-1.4.0/base/node4.html(也适用于莫扎特1.3.0)

提醒一句:如果您使用多个线程,这将为竞争条件打开大门。

于 2014-03-24T11:23:11.890 回答