如何绕过未在SWI Prolog online editor上实例化的参数?
我用它来写Prolog,我有一个程序可以把分钟转换成小时 我的分钟输出正常,但我的小时输出为如何绕过未在SWI Prolog online editor上实例化的参数?,prolog,swi-prolog-for-sharing,Prolog,Swi Prolog For Sharing,我用它来写Prolog,我有一个程序可以把分钟转换成小时 我的分钟输出正常,但我的小时输出为H=0+1+1,而不是H=2。有什么办法可以解决这个问题吗 我试过使用#=而不是=,是别人在另一篇文章中推荐的,但它在在线编辑器上不起作用,我也不能使用桌面编辑器 m2hm(T, H, M):- T < 60, H = 0, M is T. m2hm(T, H, M):- T >= 60, T1 is T-60, H = H1+1, m
H=0+1+1
,而不是H=2
。有什么办法可以解决这个问题吗
我试过使用#=
而不是=
,是别人在另一篇文章中推荐的,但它在在线编辑器上不起作用,我也不能使用桌面编辑器
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).
m2hm(T,H,M):-
T<60,
H=0,
M是T。
m2hm(T,H,M):-
T>=60,
T1是T-60,
H=H1+1,
m2hm(T1,H1,M)。
您需要使用is
而不是=
H is H1 +1
你以前用的是正确的
T1 is T-60
看到你下面的评论后
如果我这样做,它会给我一个错误:is/2:参数没有被充分实例化
你真正的问题不是你在最初的问题中问了什么
参数的答案没有充分实例化
,因为此代码的答案如下。有意思:-您必须与此人在同一个类中。但它不起作用,如果我这样做,它会给我一个错误:is/2:参数不够充分instantiated@ParadAUX这是一个单独或不同的问题,在本报告中得到了回答