1

我有以下 ets 结构:

SomeTable = ets:new(sometable, [bag]).
ets:insert(SomeTable, [
                        {set1,item1},
                        {set1,item2},
                        {set1,item3},
                        {set2,item1},
                        {set2,item2},
                        {set2,item4}]).

我想使用 ets:select 和 fun2ms 获得 set1 和 set2 的交集,结果将是 [item1, item2]。

我花了好几个小时试图用 ets:select 和 fun2ms 来完成它,但没有成功。你能帮我使用 ets:select 和 fun2ms 吗?

感谢所有答案!

ps:我知道sets模块,但我必须使用ets和这个确切的数据结构。

4

1 回答 1

0
qlc:e(qlc:q([ I || {set1, I} <- ets:table(sometable), ets:match_object(sometable, {set2, I}) =/= []])).
于 2010-04-28T00:28:14.047 回答