我寫了一個謂詞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