fun
fun:基本的抽象单元,在Erlang 中用于代表函数的数据类型被称为fun。
标准库里的lists模块导出了一些以fun作为参数的函数。它们之中最有用的是lists:map(F, L)。这个函数返回的是一个列表,它通过给列表L里的各个元素应用fun F生成。
另一个有用的函数是lists:filter(P, L),它返回一个新的列表,内含L中所有符合条件的元素
9> L=[1,2,3,4].
[1,2,3,4]
10> lists:map(fun(X) -> 2*X end,L).
[2,4,6,8]11> Even=fun(X) ->(X rem 2) =!= 0 end.
* 1: syntax error before: '!'
11> Even=fun(X) ->(X rem 2) =:= 0 end.
#Fun<erl_eval.6.118419387>
12> Even(3).
false
13> Even(2).
true
14> lists:map(Even,[1,2,3,4,5,6,8]).
[false,true,false,true,false,true,true]
15> lists:filter(Even,[1,2,3,4,5,6,8]).
[2,4,6,8]
map和filter等函数能在一次调用里对整个列表执行某种操作,我们把它们称为一次一列表 (list-at-a-time)式操作。使用一次一列表式操作让程序变得更小,而且易于理解。之所以易于理 解是因为我们可以把对整个列表的每一次操作看作程序的单个概念性步骤。否则,