【发布时间】:2014-03-19 15:39:37
【问题描述】:
您好,我在 Prolog 中有一个简单的时钟,它以 5 分钟的间隔测量时间
nextTime(Hrs:Mins1, Hrs:Mins2) :- nextMins(Mins1, Mins2).
nextTime(Hrs1:'55', Hrs2:'00') :- nextHrs(Hrs1, Hrs2).
nextHrs('12', '13').
nextHrs('13', '14').
nextHrs('14', '15').
nextHrs('15', '16'). // and so on
nextMins('00', '05').
nextMins('05', '10').
nextMins('10', '15').
nextMins('15', '20'). // and so on
现在我想写一个谓词,它可以让我说出时间 t2 是晚于还是早于时间 t1,这听起来很简单,但我不知道如何比较一个谓词中的两个整数。
我尝试过喜欢的东西:
after(H1:M1, H2:M2) :- (H1 < H2).
或
arithmetic(X,Y) :- (X<Y).
after(H1:M1, H2:M2) :- arithmetic(H1,H2).
我对 Prolog 真的很陌生,所以上面的内容对某些人来说可能看起来很愚蠢。 所以我的实际问题是如何比较 Prolog 中谓词定义中的两个整数。
【问题讨论】:
-
您是否有理由使用字符串来表示数字而不仅仅是数字?如果您使用整数,@CapelliC 显示的解决方案将按需要工作。