我想写一个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]).
那么,如何进行插入列表的递归呢?插入可以在列表的开头或末尾。