2010-04-27 7 views
1

i ont la structure suivante ets:ETS Sélectionnez l'aide pour former une intersection

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

je veux obtenir intersection de ensemble1 et ensemble2 en utilisant ets: sélectionner et fun2ms, le résultat sera [article1, article2].

J'ai passé des heures et des heures à essayer de l'accomplir avec ets: select et fun2ms sans succès. pouvez-vous m'aider en utilisant ets: select et fun2ms?

merci pour toutes les réponses! Ps: je connais le module sets, mais je dois utiliser ets et cette structure de données exacte.

Répondre

0
qlc:e(qlc:q([ I || {set1, I} <- ets:table(sometable), ets:match_object(sometable, {set2, I}) =/= []])).