2012-10-27 279 views
-1

嘿,我正在研究這個小方法,我想你會稱他們爲了讓我在swi-prolog中學習,然後在一週左右的大學課程中分配我的大型項目。它很明顯它沒有說,我說:「顏色(黃色,F)。它會給我的香蕉,檸檬等...swi-prolog [列表]

colors(C,F):-fruits(F,C) 

現在的問題是,我知道我可以使用list_to_set(F, (別的東西)),將輸出製作成一個列表,而不必點擊';' 。讓所有的水果雖然...反正是有,我可以把清單製作成實際的方法

歡呼

+0

你的意思是'findall/3'? –

+0

是的。就是我的意思。List_to_set只是擺脫重複。所以我說有沒有辦法說findall C,顏色(黃色,F),水果),而不是在你採取行動時使用findall無意中讓數據庫變得怪異,你能否將它包含在方法本身中,這樣你就可以說出顏色(C,F)。沒有findall仍然得到一個列表? – erp

+0

然後使用'setof/3'。 –

回答

0

好吧發現瞭如何:?!

colors(C,F):-findall(C,fruits(F,C),C). 

很簡單,只是不得不堅持它在那裏。謝謝反正!