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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。