【发布时间】:2013-11-15 10:45:57
【问题描述】:
我有一组这样的事实:
person(tj, 'Tom James', house).
person(jj, 'Jim Jones', hut).
person(aw, 'Alex Wolf', boat).
person(jw, 'John Wolf', boat).
我想获取他们可以居住的地方的列表:
[boat, house, hut].
我试过 setof:
placeList(Places) :- setof(Place, person(_, _, Place), Places).
但我一次只得到每个地方,而不是一个列表。我也试过 findall,但这会重复船,而且不是标准顺序。有人可以指出我在这里出错的地方吗?谢谢。
【问题讨论】:
-
你也可以在
findall的结果上使用sort/2。
标签: prolog