1

我正在尝试对给定的列表项进行一些操作,并尝试声明一个新列表并向其中添加满足特定条件的项。我必须递归调用这个函数。所以,第一次列表为空,我想在其中插入一个项目。第二次,它将有一个元素,添加另一个元素会产生两个元素。第三次有两个元素,然后再添加一个元素,依此类推。

请帮助我如何通过附加递归函数调用来在 prolog 和 addr 元素中声明列表。

4

1 回答 1

2

Prolog中不需要声明term;一旦你把它们写下来,它们就存在了。所以如果你写[],它是空列表。您提到的是两个列表之间的关系:一个列表,称为 List0,另一个列表,称为 List,即 List0 与附加元素。所以你有这样的关系

list0_list(List0, List) :-
    ....

如果 List 是具有您想要的元素的 List0 则成立。您只需描述这种关系何时成立,并通过在规则正文中说明必要条件来做到这一点。

于 2012-04-30T21:37:09.677 回答