要在Erlang上映射的元组列表

时间:2018-08-20 18:41:13

标签: erlang

我有一个这样的元组列表:[{key,val},{key2,val2}...]我希望能够将其转换为地图:

#{key=>val, key2=>val2 ......}

2 个答案:

答案 0 :(得分:5)

您可以使用the maps module中的from_list功能:

maps:from_list(Yourlist).

答案 1 :(得分:1)

如果Hendri的解决方案对您来说太简单了,那么您可以这样做:

-module(my).
-compile(export_all).

create_map(List_Of_Key_Val_Tuples) ->
    create_map(List_Of_Key_Val_Tuples, #{}).

create_map([], Acc) ->
    Acc;
create_map([{Key, Val} | Tail], Acc) ->
    create_map(Tail, Acc#{Key => Val}).

在外壳中:

11> c(my).                                                                
my.erl:2: Warning: export_all flag enabled - all functions will be exported
{ok,my}

12> my:create_map([{a, 10}, {"hello", hi}, {fun(X) -> X+2 end, add_two}]).
#{a => 10,#Fun<erl_eval.6.99386804> => add_two,"hello" => hi}
相关问题