目录
lists:keystore/4
在元组列表里存储一个值
用法:
keystore(Key, N, TupleList1, NewTuple) -> TupleList2
从元组列表 TupleList1 里查找元组的第 N 个值跟 Key 是一样的元素,如果找到则用新元组替换,并返回一个新的元组列表 TupleList1,找不到则在原来的元组列表 TupleList1 后面加上新的元组
1.
TupleList = [{a, 1}, {b, 2}, {c, 3}, {d, 4}],
lists:keystore(b, 1, TupleList, {b, 22}).
运行结果:
[{a,1},{b,22},{c,3},{d,4}]
2.
TupleList = [{a, 1}, {b, 2}, {c, 3}, {d, 4}],
lists:keystore(2, 2, TupleList, {b, 22}).
运行结果:
[{a,1},{b,22},{c,3},{d,4}]
3.
TupleList = [{a, 1}, {b, 2}, {c, 3}, {d, 4}],
lists:keystore(e, 1, TupleList, {e, 5}).
[{a,1},{b,2},{c,3},{d,4},{e,5}]
lists:foldl/3
列表里的元素递归调用函数
用法:
foldl(Fun, Acc0, List) -> Acc1
列表 List 里的每一个元素按从左向右的顺序,依次跟一个累积器(accumulator)参数 Acc0 作为 Fun 的参数被调用执行,并返回一个新的累积器 Acc1 跟列表的下一个元素调用,直到调用完列表里的所有元素,最终返回累积器 Acc 的结果值。
例1.
lists:foldl(fun(X, Sum) -> X + Sum end, 0, [1, 2, 3, 4, 5]).
运行结果:
15
例2.
lists:foldl(fun(X, {Prod1, Prod2}) -> {X + Prod1, X * Prod2} end, {0, 1}, [1, 2, 3, 4, 5]).
运行结果:
{15,120}
lists:keytake/3
从元组列表里提取一个元素
用法:
1 |
|
从元组列表 TupleList 里查找元组的第 N 个值跟 Key 是一样的元素,如果找到这个元素,则把这个元素从列表里提取出来,最后返回被提取的元素和提取后的元组列表
1 2 |
|
运行结果:
{value,{b,2},[{a,1},{c,3},{d,4}]}
lists:keyfind/3
在一个元组列表里查找一个元素
用法:
1 |
|
从元组列表 TupleList 里查找元组的第 N 个值跟 Key 是一样的元素。
1 2 |
|
运行代码{b,2}
只找第一个匹配到的元素,后面有相同的不做处理。
1 2 |
|
运行代码{b,2}
找不到则返回 false。
1 2 |
|
运行代码false
lists:member/2
判断元素是否是列表里的成员
用法:
1 |
|
判断元素是否是列表里的成员
1 |
|
运行代码true