如何从 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 中的对列表中获取元素的主要内容,如果未能解决你的问题,请参考以下文章

如何从javascript中的列表中获取音频元素的src

如何从js中的元素列表中获取元素,该元素具有自定义属性?

如何从列表“StandardListItem”中的 JSON 文件中的元素“名称”中获取所有值?

使用 jquery 的 next() 函数获取列表中的下一个元素时,如何在到达列表末尾后获取第一个元素?

如何从 C# 中的元组列表中获取最接近“a”的 4 个元素?

如何使用适配器为recyclerview从字符串数组列表中的元素获取字符串