Erlang:在ets表中查找交点

Erlang:在ets表中查找交点,erlang,ets,Erlang,Ets,我有一个ets,其中包含以下项目: [at, {other_place}, me], [other_place, {place}, {other_place}]], [at, {place}, me], [on, {surface}, {object}], [small, {object}] 我有一张清单,[[at,door,me],[on,floor,chair],[small,bannanas]] 我需要将ets表中的每个项目与列表中的一个项目进行比较,如果第一个项目是相同的atom,则

我有一个ets,其中包含以下项目:

[at, {other_place}, me],
[other_place, {place}, {other_place}]],
[at, {place}, me], 
[on, {surface}, {object}],
[small, {object}]
我有一张清单,
[[at,door,me],[on,floor,chair],[small,bannanas]]


我需要将ets表中的每个项目与列表中的一个项目进行比较,如果第一个项目是相同的atom,则替换圆括号中的项目。因此,如果我有
[at,door,me]
,它与
[at,{other_place},me]
匹配,我必须在所有ets表中更改atom门的
{other_place}

我认为这可以通过将列表作为Acc参数进行比较来实现


如果需要,列表也可以折叠,如果您需要查看它的子列表。

ets表中存储的数据是元组,其中一个索引(通常为1)被选为所有数据中的键。我不太明白你想把你的数据映射到那上面。有很多数据吗?如果没有,并且如果您不希望在进程之间共享数据,那么您可以考虑改用dict或gb_树。有些操作对他们来说更容易。