【问题标题】:Define new list and recursively add items in the list by appending in Prolog定义新列表并通过在 Prolog 中追加来递归地在列表中添加项目
【发布时间】:2012-04-30 20:17:38
【问题描述】:
我正在尝试对给定的列表项进行一些操作,并尝试声明一个新列表并向其中添加满足特定条件的项。我必须递归调用这个函数。所以,第一次列表为空,我想在其中插入一个项目。第二次,它将有一个元素,添加另一个元素会产生两个元素。第三次有两个元素,然后再添加一个元素,依此类推。
请帮助我如何在 prolog 中声明列表,并通过在递归函数调用中附加来添加元素。
【问题讨论】:
标签:
list
prolog
append
new-operator
add
【解决方案1】:
Prolog 中不需要声明术语;一旦你把它们写下来,它们就存在了。所以如果你写[],它是空列表。您提到的是两个列表之间的关系:一个列表,称为 List0,另一个列表,称为 List,即 List0 与附加元素。所以你有这样的关系
list0_list(List0, List) :-
....
如果 List 是 List0 并且包含您想要的元素,则它成立。您只需描述这种关系何时成立,并通过在规则正文中说明必要条件来做到这一点。