erlang里面动态获取列表下标
需要获取一个列表里面的元素的下标,这个在erlang里面没有现成的方法,至少至今我没有发现,若已有,请高手指点。
?
1、先写一个for循环 ;
???? for(Max, Max, F) -> [F(Max)];
???? for(I, Max, F)?? -> [F(I)|for(I+1, Max, F)].
?
2、再下一个为列表里面的元素增加索引的函数
???? %%@spec for(n,m,fun()) -> []?
???? add_index(List) ->
??????????? for(1,length(List),fun(I) ->
?????????????????????????????????????????? Elem = lists:nth(I,List),
???????????????? ????????????????????????? list_to_tuple([I] ++ tuple_to_list(Elem))
??? ?????????????????????????????????? ?end).
?
这样,就能满足要求了。测试如下:
?
3、定义一个list
???? 1> List = [{a,b,c},{a,c,g},{d,f,e},{e,f,g},{h,g,k}].
[{a,b,c},{a,c,g},{d,f,e},{e,f,g},{h,g,k}]
?
4、调用函数,查看输出
???? 2> lib_misc:add_index(List).
[{1,a,b,c},{2,a,c,g},{3,d,f,e},{4,e,f,g},{5,h,g,k}]???
--------在
?