列表推导
概念
使用特定的
列表格式
来处理列表
格式
[F(X)|| X <- L]
[F(X)|| X <- L, X > 0]
L
待处理的列表
X
列表中的一个元素
F
对X的处理函数
X > 0
是否处理列表元素的判断。如果X小于等于0,跳过处理
例子
例1
已知列表[1,2,3,4,5],得到每个元素乘以2后的新列表
%% 纯数字组成的数组
> List = [1,2,3,4,5].
[1,2,3,4,5]
%% 列表中的每一个元素 乘以 2,得到一个新的数组
> List2 = [2 * X || X <- List].
[2,4,6,8,10]
例2
所有商品同样再买一份,所有元素的数量 * 2
%% 购买的商品列表
> List = [{apple, 2}, {milk, 1}, {book, 1}].
[{apple, 2}, {milk, 1}, {book, 1}]
%% 每样商品多再多拿一倍,同理处理列表中的元素也可以通过模块/内置/匿名的函数进行处理
> List2 = [ {ItemName, ItemNum * 2} || {ItemName, ItemNum} <- List ].
[{apple,4},{milk,2},{book,2}]