我似乎无法找到描述如何存储查询结果的资源,以便我可以将其用于下一个查询。
如何从查询中获取布尔值?
答案 0 :(得分:5)
谓词没有返回值。 你可以做些什么来模拟一个返回值是添加另一个参数:
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
因为我们使用了算术。
但是,你可以使用很多谓词。
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 = []