需要获取一个列表里面的元素的下标,这个在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}]
--------在