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

von4xj4u  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(116)

我正在尝试创建一个函数,递归地返回一个元素对列表中的一个元素。它有两个参数,一个元素对列表(关联列表)和一个值。如果值与列表中元素对的第一个元素匹配,那么它应该返回元素对的第二个元素。否则,如果值不匹配,则返回错误。例如,searchpair([{K,V}],K)。应该返回V。
下面是我所尝试的。不知道如何在元组中添加和递归。

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

dohp0rv51#

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

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

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

相关问题