Erlang:在ets表中查找交叉点

时间:2010-05-08 18:50:12

标签: erlang 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表中的每个项目与列表中的项目进行比较,如果第一个项目是同一个原子,则替换圆括号中的项目。因此,如果我有[at, door, me],它与[at, {other_place}, me]匹配,我必须在所有ets表中为原子门更改{other_place}

1 个答案:

答案 0 :(得分:0)

我认为可以通过将要比较的列表作为Acc参数传递ets:foldl来实现。

如果您需要查看其子列表,如果需要,也可以使用lists:foldl折叠列表。