如何绕过未在SWI-Prolog在线编辑器上实例化的论点



我正在用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的答案。

最新更新