如何从 Erlang 中的对列表中获取元素

How to get an element from a list of pairs in Erlang

我正在尝试创建一个函数,该函数递归地 return 从成对列表中获取一个元素。它有两个参数,一个对列表(一个关联列表)和一个值,如果该值匹配列表中一对的第一个元素,那么它应该 return 对的第二个元素。 Else return 如果值不匹配则出错。例如,searchpair([{K,V}], K)。应该return V.

这是我试过的方法。不确定如何添加元组并对其进行递归。

   searchpair([], _) -> error;
   searchpair([[K, V] | Rest], Search) when V = Search -> K;
   searchpair([_ | Rest], Search) -> seachPair(Rest, Search).

不需要when,可以直接绑定K

searchpair([], _) ->
    error;
searchpair([{K,V} | _Rest], K) ->
    V;
searchpair([_T | Rest], Search) ->
    searchpair(Rest, Search).

此外,元组不是列表。此外,函数名称区分大小写。