标签:
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返回最后一次的结果。
标签:
原文地址:http://www.cnblogs.com/safety20150723/p/4767691.html