我写了一个谓词common_participant(Person, PairEvent)
。它从我的知识库中返回一些事实。我想知道是否有任何方法来执行变量绑定,并收集所有结果,而不是每次都使用分号。Prolog中的变量绑定
感谢,
一
我写了一个谓词common_participant(Person, PairEvent)
。它从我的知识库中返回一些事实。我想知道是否有任何方法来执行变量绑定,并收集所有结果,而不是每次都使用分号。Prolog中的变量绑定
感谢,
一
是的,你可以使用findall/3
。但取决于你真正想做什么,通常有更好的方法。你想输出东西吗?那就试试这个:
print_participants :-
common_participant(Person, PairEvent),
write(Person), write(' participates in '), write(PairEvent), write('.'), nl,
fail.
print_participants :-
true.
这样,你不需要把所有的组合在大名单在同一时间,但只限于打印所需要的人。
编辑:修复代码,如Kaarel建议。
我不确定我是否理解这个问题。每次都是什么? – Gian 2010-07-22 15:58:56