本文介绍了将列表作为两个列表的连续并集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试做一个谓词 unionlist(union,list1,list2),其中 union" 是作为 的并集形成的列表list1" 和 list2".此列表不能为空.
i'm trying to do a predicate unionlist(union,list1,list2), where "union" is the list formed as the union of "list1" and "list2". This lists cannot be empty.
例如:
unionlist(L,[a,b],[c,d]).
输出应该是:
L=[a,b,c,d]
另一个例子:
unionlist([a,b],L1,L2).
输出应该是:
L1=[a],L2=[b] ;
no
请帮忙.谢谢!
推荐答案
你只需要在追加后检查两者是否为非空,
You just need to check if both are non-empty after appending them,
unionlist(Union, L1, L2) :-
append(L1, L2, Union),
length(L1, Len1),
Len1 > 0,
length(L2, Len2),
Len2 > 0.
- 附加在开头,以便谓词可以反向使用
- append in the beginning, so that the predicate can be used in reverse
这篇关于将列表作为两个列表的连续并集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!