【发布时间】:2020-09-09 14:01:17
【问题描述】:
我需要编写一个谓词,如果 X 早于 Y,则为真。我的代码如下。我还没有看到任何问题。请帮帮我。
born(jan, date(20, 3, 1977)).
born(joris, date(17, 3, 1995)).
born(jesus, date(24, 12, 0)).
born(joop, date(30, 4, 1989)).
before(date(_, _, Year1), date(_, _, Year2)) :-
Year1 < Year2.
before(date(_, Month1, Year ), date(_, Month2, Year)) :-
Month1 < Month2.
before(date(Day1, Month, Year ), date(Day2, Month, Year)) :-
Day1 > Day2.
older(X, Y) :-
X \= Y,
born(X, B1),
born(Y, B2),
before(B1, B2).
查询应该给出这个。
?- older(jesus, Y).
jan,
joris,
joop.
【问题讨论】:
-
我不确定这是您报告问题的根源,但您是否有意使用
Month1 < Month2和Day1 > Day2?我会想那些 V 形会是一样的? -
没有。感谢您的纠正。