如何从 Erlang 中的对列表中获取元素
Posted
技术标签:
【中文标题】如何从 Erlang 中的对列表中获取元素【英文标题】:How to get an element from a list of pairs in Erlang 【发布时间】:2021-06-26 16:23:28 【问题描述】:我正在尝试创建一个从对列表中递归返回元素的函数。它有两个参数,一个对的列表(一个关联列表)和一个值,如果该值与列表中一对的第一个元素匹配,那么它应该返回该对的第二个元素。如果值不匹配,则返回错误。例如,searchpair([K,V], K)。应该返回 V。
这是我尝试过的。不知道如何添加元组并对其进行递归。
searchpair([], _) -> error;
searchpair([[K, V] | Rest], Search) when V = Search -> K;
searchpair([_ | Rest], Search) -> seachPair(Rest, Search).
【问题讨论】:
【参考方案1】:你不需要when
,可以直接绑定K
:
searchpair([], _) ->
error;
searchpair([K,V | _Rest], K) ->
V;
searchpair([_T | Rest], Search) ->
searchpair(Rest, Search).
另外,元组不是列表。此外,函数名区分大小写。
【讨论】:
以上是关于如何从 Erlang 中的对列表中获取元素的主要内容,如果未能解决你的问题,请参考以下文章
如何从列表“StandardListItem”中的 JSON 文件中的元素“名称”中获取所有值?
使用 jquery 的 next() 函数获取列表中的下一个元素时,如何在到达列表末尾后获取第一个元素?