簡體   English   中英

prolog 中列表列表的聯合?

[英]Union of list of lists in prolog?

如何獲得以下(swi-)prolog謂詞:

union(+ListOfLists, -ResultList)

形式:

ListOfLists = [A1, A2, A3, ..., An]

ResultList = A1 ∪ A2 ∪ A3 ∪ ... ∪ An 

如果您的“聯合”是可交換的並且標識元素是空集,您可以簡單地定義:

union(Ls, U, Op, Empty) :-
    foldl(Op, Ls, Empty, U).

你如何代表你的工會? 如果它是一個列表,那么[]是空集,並且如果您已經定義了一個union/3 (其中最后一個參數是前兩個的並集),那么:

union(Ls, U) :-
    foldl(union, Ls, [], U).

但是你的union/3的計算復雜度是多少?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM