簡體   English   中英

如何在 prolog 查詢中列出超過 1 個 output?

[英]How to list more than 1 output on prolog query?

想象一下我的兄弟姐妹,我的表兄弟和我,我們的總數是 10。所以我編寫了這段代碼,當我運行它時,它只給了我 1 output。 如何在此查詢中打印所有 X 值(名稱)。 如果可能的話,我怎樣才能改變什么名字是第一位的,或者我如何選擇第三個或第五個名字? (我的祖父是我祖父的兄弟。)

這是我的代碼和 output

granduncle(T,X) :- brother(T,Z),parent(Z,Y),parent(Y,X).


?- granduncle(john,X).
X=stan

您需要使用集合謂詞:

bagof/3 setof/3

findall/3

將所有解決方案收集到一個列表中。

例如:

bagof(X,granduncle(john,X),Bag).

將在Bag中創建解決方案列表。

然后,您可以使用以下謂詞對列表進行切片和切塊:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM