List 在prolog中构建列表

List 在prolog中构建列表,list,recursion,prolog,List,Recursion,Prolog,我是prolog的初学者,我正在尝试返回一个结果列表。 假设我有属于某人的物品。 物品(个人1,苹果)。 物品(人员1,橙色) 我希望能够创建一个函数,可以返回属于此人的项目列表。 目前我有: getitems(Person,Result):-items(Person,N),结果为N 这只返回第一项。 我如何才能让它返回属于该人员的所有项目的列表 谢谢。问了很多次,正确的术语是“找到目标的所有解决方案”,例如,来自SWI Prolog实现 总之, bagof(Item, items(pers

我是prolog的初学者,我正在尝试返回一个结果列表。 假设我有属于某人的物品。
物品(个人1,苹果)。
物品(人员1,橙色)

我希望能够创建一个函数,可以返回属于此人的项目列表。 目前我有:

getitems(Person,Result):-items(Person,N),结果为N

这只返回第一项。 我如何才能让它返回属于该人员的所有项目的列表


谢谢。

问了很多次,正确的术语是“找到目标的所有解决方案”,例如,来自SWI Prolog实现

总之,

bagof(Item, items(person1, Item), Items).
本节中的谓词、
findall
bagof
setof
的行为略有不同,它们的用途也有所不同。有很多关于Stackoverflow的例子说明了如何使用它们