List 定义新列表,并通过在Prolog中追加来递归地在列表中添加项

List 定义新列表,并通过在Prolog中追加来递归地在列表中添加项,list,prolog,append,new-operator,add,List,Prolog,Append,New Operator,Add,我试图对给定的列表项执行一些操作,并试图声明一个新列表,并向其中添加满足特定条件的项。我必须递归调用这个函数。所以,第一次列表为空,我想在其中插入一项。第二次,它将有一个元素,添加另一个元素将生成两个元素。第三次有两个元素,再添加一个元素,依此类推 请帮助我如何在prolog中声明列表,并通过在递归函数调用中添加元素将其添加到列表中。在prolog中不需要声明术语;一旦你把它们写下来,它们就存在了。所以如果你写[],它就是一个空列表。您提到的是两个列表之间的关系:一个列表,称之为List0,另一

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


请帮助我如何在prolog中声明列表,并通过在递归函数调用中添加元素将其添加到列表中。

在prolog中不需要声明术语;一旦你把它们写下来,它们就存在了。所以如果你写[],它就是一个空列表。您提到的是两个列表之间的关系:一个列表,称之为List0,另一个列表,称之为list,即包含其他元素的List0。那么你有这样的亲戚

list0_list(List0, List) :-
    ....
如果列表是包含所需元素的List0,则它将保持不变。您只需描述这种关系何时成立,您可以通过在规则体中声明必要的条件来实现这一点