Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何绕过未在SWI Prolog online editor上实例化的参数?_Prolog_Swi Prolog For Sharing - Fatal编程技术网

如何绕过未在SWI Prolog online editor上实例化的参数?

如何绕过未在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

我用它来写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,
    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这是一个单独或不同的问题,在本报告中得到了回答