玩意儿
Erlang 是一种函数式编程语言。函数编程语言的一个特性是将函数作为数据(函数对象)处理。
- 将函数作为参数传递给另一个函数。
- 作为函数的结果返回函数。
- 在某些数据结构中保留函数。
在 Erlang 中,这些函数称为 funs。Funs 是匿名函数。
1> Fun = fun(X) -> X*X end.
#Fun<erl_eval.6.52032458>
2> Fun(5).
25
Funs 也可能有几个条款。
3> AddOrMult = fun(add,X) -> X+X;
3> (mul,X) -> X*X
3> end.
#Fun<erl_eval.12.52032458>
4> AddOrMult(mul,5).
25
5> AddOrMult(add,5).
10
你还可以使用模块函数作为语言:fun Module:Function/Arity
。
例如,让我们从 lists
模块中获取 max
函数,它具有 arity 1。
6> Max = fun lists:max/1.
#Fun<lists.max.1>
7> Max([1,3,5,9,2]).
9