0

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

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).

我得到重复项,例如 [medium, medium, large, unknown, unknown, unknown]

setof/3 旨在使集合独一无二,所以我尝试了

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

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

任何想法为什么?

4

0 回答 0