[英]Prolog: getting a list of atoms
我有一组这样的事实:
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,但这会复制船,它不会按标准顺序。 有人能指出我在哪里错了吗? 谢谢。
你必须明确量化:为你的变量添加存在的约束
placeList(Places) :- setof(Place, K^N^person(K, N, Place), Places).
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.