【问题标题】:Using ETS Select To Form An Intersection使用 ETS Select 形成交叉口
【发布时间】:2011-02-13 02:39:09
【问题描述】:

我有以下 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 和这个确切的数据结构。

【问题讨论】:

    标签: erlang set intersection ets


    【解决方案1】:
    qlc:e(qlc:q([ I || {set1, I} <- ets:table(sometable), ets:match_object(sometable, {set2, I}) =/= []])).
    

    【讨论】:

      猜你喜欢
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多