给定日期之前写消息的Prolog的规则(Writing a Prolog rule for mess

2019-11-02 19:02发布

我怎样写,鉴于两个人,测试是否已经有一个给定的日期之前它们之间的任一方向发送消息的Prolog的规则?

到目前为止,我有:

?- MBefore(x,y) :- message(x,y,d1), message(y,x,d1), d1@<Date.

Answer 1:

mbefore(X,Y,D) :- message(X,Y,D1), D > D1 ; message(Y,X,D1), D > D1.

在这里','手段‘和’, ';' 手段“或”。“或”组合的两种选择都试过了,独立。 第一系统试图证明第一选择(到左侧; ),则搜索回溯,任何逻辑变量恢复到其先前的状态,并且所述第二选择(到右侧“;”)被试过。 这就是为什么我们可以使用相同的logvar D1“或”结合-两者的替代品。

另外, ':-'表示“成立时,如果满足以下可以证明”。

如果上述任何一项是新的给你,你真的应该通过一些教程或教材学习语言的基础知识。 “序言的艺术”是一个很好的入门书。



文章来源: Writing a Prolog rule for messages before a given date
标签: prolog