我编写了一个谓词common_participant(Person, PairEvent)
,它从我的知识库返回一组事实。我想知道是否有一种方法可以进行变量绑定并收集所有结果,而不必每次都使用分号。
谢谢,
I.
是的,可以使用 findall/3
。但是根据您实际想要做什么,通常有更好的方法。 您想要输出东西吗?那么请尝试这样做:
print_participants :-
common_participant(Person, PairEvent),
write(Person), write(' participates in '), write(PairEvent), write('.'), nl,
fail.
print_participants :-
true.
这样,您就不需要同时保留所有组合在一个大列表中,而只需要打印所需的那个。
编辑:根据Kaarel的建议修复了代码。