Variables 在Prolog规则中传递整数
我对Prolog非常陌生,目前正在努力将整数作为一个规则的参数传递给SWI Prolog中的另一个规则。例如:Variables 在Prolog规则中传递整数,variables,prolog,arguments,Variables,Prolog,Arguments,我对Prolog非常陌生,目前正在努力将整数作为一个规则的参数传递给SWI Prolog中的另一个规则。例如: left(B) :- B is B - 1. 任何帮助都将不胜感激。您可以尝试以下方法: left(A,B) :- B is A - 1. 那么cond2(X)应该返回X=3您至少说明了关于Prolog的三个基本误解。(1) B是B-1将始终失败,因为在Prolog中,这意味着您有一个值,B,它与B-1值相同,这当然是不可能的。(2)在Prolog中,谓词不返回值。他们不是成功
left(B) :- B is B - 1.
任何帮助都将不胜感激。您可以尝试以下方法:
left(A,B) :- B is A - 1.
那么
cond2(X)
应该返回X=3
您至少说明了关于Prolog的三个基本误解。(1) B是B-1
将始终失败,因为在Prolog中,这意味着您有一个值,B
,它与B-1
值相同,这当然是不可能的。(2)在Prolog中,谓词不返回值。他们不是成功就是失败。因此X=left(4)
不会“调用”left
(3)=/2
不是赋值运算符。这是一个统一操作员。
left(A,B) :- B is A - 1.
cond2(X) :- left(4,X).