玩意兒

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