如何阻止prolog目标不止一次执行?

时间:2011-08-01 21:50:33

标签: prolog

我有一个事实和目标如下:

disconnected.

join :- disconnected, time(T), send(T).

一旦这个目标执行,它应该断开false,因此不再执行。我是Prolog的新手,所以我有点卡住了。我确信这是非常简单的事情,但目前无法弄清楚。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您可以使用assertretract来更改已知事实。或者您可以使用全局变量。我不确定那是多么的标准。

最简单的方法是使用两个参数声明join:输入参数表示当前状态,输出参数表示新状态。