比方说,我有这些事实:如何在Prolog中返回列表?
parent(bob, sam). %bob is sam's parent
parent(sara, sam). %sara is sam's parent
我想找出谁是SAM的父母,并在列表中,并作为回报他们这样使用的:
list_parents(P, L) :- findall(Parent, parent(Parent, P), L).
我想要什么现在要做的是问同样的问题,但只有一个参数是这样的:
findParents(sam).
我想:
findParents(Name) :- list_parents(Name, L).
但这样Prolog只是回答"True"
。
findParents(Name):-
list_parents(Name,L),
print(L).
但心不是正好返回:
不可能。不要。除了布尔值之外,Prolog没有返回值。 – 2011-05-27 06:56:46