因此,在我的prolog代码中,我有类似以下格式的事实:
鱼(类型,大小,日期_捕获)。
我想创建一条规则,让我可以看到在特定日期之前钓到的鱼。所以,如果我输入caught_before(2013-12-07)。它将显示在该日期之前捕获的所有鱼类。
答案 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.