當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


erlang from_term(Term)用法及代碼示例


from_term(Term) -> AnySet
from_term(Term, Type) -> AnySet
類型:
AnySet = anyset()
Term = term()
Type = type()

創建一個元素通過遍曆項Term、對列表進行排序、刪除重複項以及導出或驗證有效類型對於如此獲得的外部集。明確指定的類型 Type可用於限製遍曆的深度;原子類型停止遍曆,如以下示例所示,其中"foo"{"foo"}保持不變:

1> S = sofs:from_term([{{"foo"},[1,1]},{"foo",[2,2]}],
[{atom,[atom]}]),
sofs:to_external(S).
[{{"foo"},[1]},{"foo",[2]}]

from_term 可用於創建原子集或有序集。這樣一個集合的唯一目的是稍後構建無序集合,因為該模塊中執行任何操作的所有函數都對無序集合進行操作。如果有序集很大並且不想通過重建無序集的元素來浪費堆,則從有序集的集合創建無序集可能是一種可行的方法。以下示例顯示可以“逐層”構建集合:

1> A = sofs:from_term(a),
S = sofs:set([1,2,3]),
P1 = sofs:from_sets({A,S}),
P2 = sofs:from_term({b,[6,5,4]}),
Ss = sofs:from_sets([P1,P2]),
sofs:to_external(Ss).
[{a,[1,2,3]},{b,[4,5,6]}]

創建集合的其他函數是from_external/2from_sets/1。特殊情況from_term/2a_function/1,2,empty_set/0,family/1,2,relation/1,2, 和set/1,2.

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 from_term(Term) -> AnySet。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。