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}