0

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

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

getitems(Person,Result):-items(Person,N),Result 为 N。

这仅返回第一项。我怎样才能让它返回属于该人的所有项目的列表?

谢谢。

4

1 回答 1

1

被问了很多次,正确的命名法是“Finding all solution to a goal”,例如,从 SWI-Prolog 实现中,finding all solutions

简而言之,

bagof(Item, items(person1, Item), Items).

本节中的谓词findallbagofsetof都略有不同并有其用途。Stackoverflow 上有很多关于如何使用它们的示例。

于 2013-06-07T06:49:31.943 回答