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


erlang substitution(SetFun, Set1)用法及代码示例


substitution(SetFun, Set1) -> Set2
类型:
SetFun = set_fun()
Set1 = Set2 = a_set()

返回一个函数,其域是 Set1 。域的元素的值是将SetFun应用于该元素的结果。

1> L = [{a,1},{b,2}].
[{a,1},{b,2}]
2> sofs:to_external(sofs:projection(1,sofs:relation(L))).
[a,b]
3> sofs:to_external(sofs:substitution(1,sofs:relation(L))).
[{{a,1},a},{{b,2},b}]
4> SetFun = {external, fun({A,_}=E) -> {E,A} end},
sofs:to_external(sofs:projection(SetFun,sofs:relation(L))).
[{{a,1},a},{{b,2},b}]

{a,b,c}的元素之间的相等关系:

1> I = sofs:substitution(fun(A) -> A end, sofs:set([a,b,c])),
sofs:to_external(I).
[{a,a},{b,b},{c,c}]

SetOfSets是一组集合并且BinRel二元关系。映射每个元素的函数SetSetOfSets图片Set在下面BinRel由以下函数返回:

images(SetOfSets, BinRel) ->
   Fun = fun(Set) -> sofs:image(BinRel, Set) end,
   sofs:substitution(Fun, SetOfSets).

外部无序集表示为排序列表。因此,在关系 R 下创建集合的图像可以遍历 R 的所有元素(从而对结果进行排序,即图像)。在image/2,BinRel的每个元素都被遍历一次SetOfSets,这可能需要很长时间。假设每个元素的图像SetOfSets在下面BinRel非空:

images2(SetOfSets, BinRel) ->
   CR = sofs:canonical_relation(SetOfSets),
   R = sofs:relative_product1(CR, BinRel),
   sofs:relation_to_family(R).

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 substitution(SetFun, Set1) -> Set2。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。