Prolog,比较在给定日期之前查看的日期

时间:2013-12-08 15:49:25

标签: prolog

因此,在我的prolog代码中,我有类似以下格式的事实:

鱼(类型,大小,日期_捕获)。

我想创建一条规则,让我可以看到在特定日期之前钓到的鱼。所以,如果我输入caught_before(2013-12-07)。它将显示在该日期之前捕获的所有鱼类。

2 个答案:

答案 0 :(得分:0)

可能会有所帮助:

? Y-M-D = 2013-12-08.
Y = 2013,
M = 12,
D = 8.

答案 1 :(得分:0)

你可以使用@<操作者:

1 ?- [user].
|: fish(a,b,2003-10-10).
|: fish(a,b,2003-10-10).
|: fish(a,b,2004-10-10).
|: caught_before(D) :- fish(T,S,D1), D1 @< D.
Warning: user://2:23:
    Singleton variables: [T,S]
|: 
% user://2 compiled 0.02 sec, 2 clauses
true.

2 ?- caught_before(2005-X-Y).
true ;
true ;
true.

2 ?- caught_before(2004-X-Y).
true ;
true ;
false.

2 ?- caught_before(2003-X-Y).
false.