Prolog setof / 3没有返回所有元素

时间:2017-07-10 14:17:59

标签: prolog prolog-setof

我正在列出我数据库中所有种类的狗大小,例如

breed(beagle,medium, hunting).
breed(bassets,medium, hunting).
breed(labrador,large, guideDogs).
breed(germanShepards,large, guardDogs).
breed(boxer,unknown,unknown).
breed(dalmation,unknown,unknown).
breed(ridgeback,unknown,unknown).

所以我从数据库中获取了大小,但是只想拥有独特的大小,以便我以后可以计算它们。如果我使用

sizes(List) :- findall(Size, breed(_,Size,_), List).

我得到重复的内容,例如     [中,中,大,未知,未知,未知]

setof / 3旨在使该集唯一,所以我尝试了

sizes(List) :- setof(Size, breed(_,Size,_), List).

但它现在只返回第一个条目     [介质]

任何想法为什么?

0 个答案:

没有答案