递归地将元素插入到列表中

时间:2011-05-16 12:50:41

标签: prolog

我想写一个Prolog程序,在另一个列表中插入一个列表。例如:

% insert [1, 2] to [[1, 3, 4], [2, 5]]
[[1, 3, 4], [2, 5], [1, 2]]

我写了以下内容:

insertList([X], [], [[X]]).
insertList([H|T], [H2|T2], [[H|T], H2|T2]).

但是这种方法只添加一个列表,因为没有递归。在这种情况下如何进行递归?在此代码中将元素插入列表时遇到了同样的问题:

insert(X, [], [X]).
insert(X, [H|T], [X,H|T]).

那么,如何进行插入列表的递归呢?插入可以在列表的开头或末尾。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

可能最好查看以下post,其中第一个答案包含指向prolog中的递归解释的站点的链接。这是解决上述问题的良好起点。