繁体   English   中英

Prolog:获取原子列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM