2012-10-27 219 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). 

很简单,只是不得不坚持它在那里。谢谢反正!