Prolog:简单的日期范围选择规则

时间:2013-12-30 21:11:23

标签: prolog

我对这个问题感到有些困惑 - 写一条规则,给定两个人AB以及一个日期D返回{{1}的所有日期列表}和A已将消息交换到日期B

到目前为止,我有这个,但我不知道我哪里出错。

D

其次,我完全坚持这一点 - 编写一条规则,计算在事实数据库中为每个人发送的消息数量。

我如何编写这些规则?

编辑:对不起,我忘了发布这些;这些都是事实。

mexchanged(A,B,D) :- message(A,B,D1), D > D1. 

1 个答案:

答案 0 :(得分:1)

你实际上并不遥远,除了我不知道G在这里代表什么:

message(hunter, user3147584, '12-30-2013').
message(hunter, mom,         '12-29-2013').
message(hunter, user3147584, '12-28-2013').

% predicate to test for exchanged messages
mexchanged(A,B,D) :- message(A,B,D1), D @> D1 ; 
                     message(B,A,D1), D @> D1 .

% example
mexchanged(hunter, user3147584, '12-29-2013').
% output = true