码迷,mamicode.com
首页 > 其他好文 > 详细

lists函数

时间:2015-08-28 21:10:58      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

1:lists:all(fun(E)->true end,[1,2,3,4]).   结果true

如果List中的每个元素作为函数的参数执行,结果都返回true,那么all函数就返回true,否则返回false

2:lists:any(fun(E)->is_integer(E) end,[q,w,a,4]).结果true

如果List中至少有一个元素作为函数的参数执行,结果返回true,那么any函数返回true,
否则返回false

3:lists:dropwhile(fun(E) -> is_atom(E) end,[a,1,2,a,b]). 结果[1,2,a,b]

将List1列表中的元素作为参数执行函数,如果返回true,将其丢弃,最后返回剩余元素
组成的列表

4:lists:filter(fun(E) -> is_integer(E) end,[q,2,a,4]).  结果[2,4]

返回一个列表,这个列表是由List1中执行Pred函数返回true的元素组成。

5:lists:map(fun(X)->[X,X] end, [a,b,c]). 结果[[a,a],[b,b],[c,c]]

将List1中的每个元素去在Fun中执行,然后返回一个元素,最后返回的这些元素组成一个列表,
返回给List2

6:lists:flatmap(fun(X)->[X,X] end, [a,b,c]).  结果[a,a,b,b,c,c]

这个函数和map比较类似,相当于执行了
lists:append(lists:map(List1)).
也就是把map的结果进行append处理

7:foldl(Fun, Acc0, List) -> Acc1

lists:foldl(fun(X, Sum) -> X + Sum end, 0, [1,2,3,4,5]).   结果:15

Fun这个函数有两个参数
第一个参数是List中的元素,第二个参数是Fun函数执行完后的返回值,这个参数第一次执行时
就是Acc0。

执行过程:首先,Fun第一次执行时,X的值取列表List的第一个元素1,Sum取0,
Fun第二次执行时,X的值取列表List的第二个元素2,Sum取Fun第一次的返回值
依次轮推,直到List中每个元素执行完,最后foldl返回最后一次的结果。

lists函数

标签:

原文地址:http://www.cnblogs.com/safety20150723/p/4767691.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!