檢視原始碼 ordsets (stdlib v6.2)

用於操作以排序列表表示的集合的函式。

集合是不包含重複元素的元素集合。 ordset 是一種集合的表示方式,其中使用排序列表來儲存集合的元素。排序列表比未排序列表更有效率。元素會根據Erlang 項的順序進行排序。

此模組提供與 sets 模組相同的介面,但具有定義的表示方式。一個差異是,當 sets 認為兩個元素如果不匹配 ( =:= ) 則視為不同時,此模組僅在兩個元素不相等 ( == ) 時才視為不同。

有關標準程式庫中不同集合實作的相容性資訊,請參閱 sets 模組中的相容性章節

另請參閱

gb_sets, sets

摘要

型別

new/0 傳回。

函式

傳回由 Ordset1 形成的新排序集合,並插入 Element

傳回 Ordset1,但移除 Element

使用布林函式 Pred 過濾 Ordset1 中的元素。

使用函式 Fun 過濾和映射 Ordset1 中的元素。

Function 摺疊在 Ordset 中的每個元素上,並傳回累積器的最終值。

傳回 List 中元素的排序集合。

傳回非空集合列表的交集。

傳回 Ordset1Ordset2 的交集。

如果 Ordset1Ordset2 不相交(沒有共同元素),則傳回 true,否則傳回 false

如果 ElementOrdset 的元素,則傳回 true,否則傳回 false

如果 Ordset 是空集合,則傳回 true,否則傳回 false

如果 Ordset1Ordset2 相等,也就是說,當一個集合的每個元素也是另一個集合的成員時,則傳回 true,否則傳回 false

如果 Ordset 是元素的排序集合,則傳回 true,否則傳回 false。 此函式將為任何排序列表傳回 true,即使不是由此模組中的函式建構的。

Ordset1 的每個元素也是 Ordset2 的成員時,傳回 true,否則傳回 false

使用映射函式 Fun 映射 Ordset1 中的元素。

傳回新的空排序集合。

傳回 Ordset 中的元素數量。

僅傳回 Ordset1 中不是 Ordset2 元素的元素。

以列表形式傳回 Ordset 的元素。

傳回集合列表的合併(聯集)集合。

傳回 Ordset1Ordset2 的合併(聯集)集合。

型別

-type ordset(T) :: [T].

new/0 傳回。

函式

連結到此函式

add_element(Element, Ordset1)

檢視原始碼
-spec add_element(Element, Ordset1) -> Ordset2
                     when Element :: E, Ordset1 :: ordset(T), Ordset2 :: ordset(T | E).

傳回由 Ordset1 形成的新排序集合,並插入 Element

連結到此函式

del_element(Element, Ordset1)

檢視原始碼
-spec del_element(Element, Ordset1) -> Ordset2
                     when Element :: term(), Ordset1 :: ordset(T), Ordset2 :: ordset(T).

傳回 Ordset1,但移除 Element

-spec filter(Pred, Ordset1) -> Ordset2
                when
                    Pred :: fun((Element :: T) -> boolean()), Ordset1 :: ordset(T), Ordset2 :: ordset(T).

使用布林函式 Pred 過濾 Ordset1 中的元素。

連結到此函式

filtermap(Fun, Ordset1)

檢視原始碼 (自 OTP 27.0 起)
-spec filtermap(Fun, Ordset1) -> Ordset2
                   when
                       Fun :: fun((Element1 :: T1) -> boolean | {true, Element2 :: T2}),
                       Ordset1 :: ordset(T1),
                       Ordset2 :: ordset(T1 | T2).

使用函式 Fun 過濾和映射 Ordset1 中的元素。

連結到此函式

fold(Function, Acc0, Ordset)

檢視原始碼
-spec fold(Function, Acc0, Ordset) -> Acc1
              when
                  Function :: fun((Element :: T, AccIn :: term()) -> AccOut :: term()),
                  Ordset :: ordset(T),
                  Acc0 :: term(),
                  Acc1 :: term().

Function 摺疊在 Ordset 中的每個元素上,並傳回累積器的最終值。

-spec from_list(List) -> Ordset when List :: [T], Ordset :: ordset(T).

傳回 List 中元素的排序集合。

連結到此函式

intersection(OrdsetList)

檢視原始碼
-spec intersection(OrdsetList) -> Ordset when OrdsetList :: [ordset(_), ...], Ordset :: ordset(_).

傳回非空集合列表的交集。

連結到此函式

intersection(Ordset1, Ordset2)

檢視原始碼
-spec intersection(Ordset1, Ordset2) -> Ordset3
                      when Ordset1 :: ordset(_), Ordset2 :: ordset(_), Ordset3 :: ordset(_).

傳回 Ordset1Ordset2 的交集。

連結到此函式

is_disjoint(Ordset1, Ordset2)

檢視原始碼
-spec is_disjoint(Ordset1, Ordset2) -> boolean() when Ordset1 :: ordset(_), Ordset2 :: ordset(_).

如果 Ordset1Ordset2 不相交(沒有共同元素),則傳回 true,否則傳回 false

連結到此函式

is_element(Element, Ordset)

檢視原始碼
-spec is_element(Element, Ordset) -> boolean() when Element :: term(), Ordset :: ordset(_).

如果 ElementOrdset 的元素,則傳回 true,否則傳回 false

連結到此函式

is_empty(Ordset)

檢視原始碼 (自 OTP 21.0 起)
-spec is_empty(Ordset) -> boolean() when Ordset :: ordset(_).

如果 Ordset 是空集合,則傳回 true,否則傳回 false

連結到此函式

is_equal(Ordset1, Ordset2)

檢視原始碼 (自 OTP 27.0 起)
-spec is_equal(Ordset1, Ordset2) -> boolean() when Ordset1 :: ordset(_), Ordset2 :: ordset(_).

如果 Ordset1Ordset2 相等,也就是說,當一個集合的每個元素也是另一個集合的成員時,則傳回 true,否則傳回 false

-spec is_set(Ordset) -> boolean() when Ordset :: term().

如果 Ordset 是元素的排序集合,則傳回 true,否則傳回 false。 此函式將為任何排序列表傳回 true,即使不是由此模組中的函式建構的。

連結到此函式

is_subset(Ordset1, Ordset2)

檢視原始碼
-spec is_subset(Ordset1, Ordset2) -> boolean() when Ordset1 :: ordset(_), Ordset2 :: ordset(_).

Ordset1 的每個元素也是 Ordset2 的成員時,傳回 true,否則傳回 false

連結到此函式

map(Fun, Ordset1)

檢視原始碼 (自 OTP 27.0 起)
-spec map(Fun, Ordset1) -> Ordset2
             when
                 Fun :: fun((Element1 :: T1) -> Element2 :: T2),
                 Ordset1 :: ordset(T1),
                 Ordset2 :: ordset(T2).

使用映射函式 Fun 映射 Ordset1 中的元素。

-spec new() -> [].

傳回新的空排序集合。

-spec size(Ordset) -> non_neg_integer() when Ordset :: ordset(_).

傳回 Ordset 中的元素數量。

連結到此函式

subtract(Ordset1, Ordset2)

檢視原始碼
-spec subtract(Ordset1, Ordset2) -> Ordset3
                  when Ordset1 :: ordset(_), Ordset2 :: ordset(_), Ordset3 :: ordset(_).

僅傳回 Ordset1 中不是 Ordset2 元素的元素。

-spec to_list(Ordset) -> List when Ordset :: ordset(T), List :: [T].

以列表形式傳回 Ordset 的元素。

-spec union(OrdsetList) -> Ordset when OrdsetList :: [ordset(T)], Ordset :: ordset(T).

傳回集合列表的合併(聯集)集合。

連結到此函式

union(Ordset1, Ordset2)

檢視原始碼
-spec union(Ordset1, Ordset2) -> Ordset3
               when Ordset1 :: ordset(T1), Ordset2 :: ordset(T2), Ordset3 :: ordset(T1 | T2).

傳回 Ordset1Ordset2 的合併(聯集)集合。