我正在用swish编写prolog,并且我有一个程序可以将几分钟转换为数小时。
我的输出几分钟很好,但是我的时间输出为H = 0+1+1
,而不是H = 2
。有什么办法可以解决此问题?
我尝试使用#=
而不是=
和is
作为某人在另一个帖子上的建议,但它在在线编辑器上不起作用,我无法使用桌面。
m2hm(T, H, M):-
T < 60,
H = 0,
M is T.
m2hm(T, H, M):-
T >= 60,
T1 is T-60,
H = H1+1,
m2hm(T1, H1, M).
您需要使用is
而不是=
H is H1 +1
您在使用
之前正确地在行中做到了T1 is T-60
在下面看到您的评论后,
如果我这样做会给我错误:is/2:参数不够实例化
您的真正问题不是您在原始问题中问的问题。
在此问题中回答了此代码的Arguments are not sufficiently instantiated
的答案。