【问题标题】:Make a list as the consecutive union of two lists将列表作为两个列表的连续并集
【发布时间】:2021-05-15 01:20:27
【问题描述】:

我正在尝试做一个谓词 unionlist(union,list1,list2),其中 "union" 是形成为 " 的并集的列表list1""list2"。此列表不能为空。

例如:

unionlist(L,[a,b],[c,d]).

输出应该是:

L=[a,b,c,d]

另一个例子:

unionlist([a,b],L1,L2).

输出应该是:

L1=[a],L2=[b] ;
no

请帮忙。谢谢!

【问题讨论】:

    标签: prolog


    【解决方案1】:

    你只需要在添加它们之后检查它们是否都是非空的,

    unionlist(Union, L1, L2) :-
        append(L1, L2, Union),
        length(L1, Len1),
        Len1 > 0,
        length(L2, Len2),
        Len2 > 0.
    

    [EDIT] - 追加在开头,以便谓词可以反向使用

    【讨论】:

    • 您可以检查编辑。它现在应该可以工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多