当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。