[英]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.