读书人

erlang里面动态获取列表上标

发布时间: 2012-10-07 17:28:51 作者: rapoo

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}]???

--------在

?

读书人网 >编程

热点推荐