我正在列出我数据库中所有种类的狗大小,例如
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).
但它现在只返回第一个条目 [介质]
任何想法为什么?