如何从 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).
此外,元组不是列表。此外,函数名称区分大小写。
我正在尝试创建一个函数,该函数递归地 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).
此外,元组不是列表。此外,函数名称区分大小写。