如何将结果存储到prolog中的变量中?
答
谓词没有返回值。 你可以做什么来模拟一个返回值是添加另一种说法:
add_numbers(X,Y):-
Return is X+Y.
将成为
add_numbers(X,Y,Return):-
Return is X+Y.
,当你调用它,你将使用一个变量:
?- add_numbers(4,3,Result).
Result = 7.
请注意,您也可以这样称呼它:
?- add_numbers(4,3,7).
true
也:
?- add_numbers(4,3,8).
false
,但它是不可能做到的通话add_numbers(X,2,7
,因为我们使用的运算。然而,很多谓词可以用于任何你想要的。例如,prolog有一个内置谓词append/3
。 通常你会使用这样的:
?-append([1,2],[3,4],X).
X=[1,2,3,4]
,但你也可以使用这样的:
?- append(X,Y,[1,2,3]).
X = [],
Y = [1, 2, 3] ;
X = [1],
Y = [2, 3] ;
X = [1, 2],
Y = [3] ;
X = [1, 2, 3],
Y = []
我建议你提到*限制*和举个例子所添加的普遍性:有约束,你可以在所有方向上执行算术,因为它们是算术表达式上的真实关系。 – mat