功能

功能是一組指令,它們組合在一起。這些分組指令一起執行某些任務。在 erlang 中,所有函式在呼叫時都會返回一個值。

下面是一個新增兩個數字的函式示例

add(X, Y)-> X + Y.

此函式使用 X 和 Y 值執行新增操作並返回結果。功能可以如下使用

add(2,5).

函式宣告可以由多個子句組成,用分號分隔。每個子句中的引數都通過模式匹配來評估。如果 Argument 是 Form 中的元組,則以下函式將返回’tuple’:{test,X}其中 X 可以是任何值。它將返回’list’,如果 Argument 是表格[test,X]中長度為 2 的列表,並且在任何其他情況下它將返回’{error,Reason}’:

function({test, X}) -> tuple;
function(["test", X]) -> list;
function(_) -> {error, "Reason"}.

如果引數不是元組,則將評估第二個子句。如果引數不是列表,則將評估第三個子句。

函式宣告可以包含所謂的 GuardsGuard Sequences。這些 Guards 是限制函式求值的表示式。只有當所有 Guard 表示式都產生真值時,才會執行帶有 Guards 的函式。多個警衛可以用分號分隔。

function_name(Argument) when Guard1; Guard2; ... GuardN -> (...).

僅當 Guard Sequence 為 true 時,才會評估函式’function_name’。只有當引數 X 在適當的範圍內(0..15)時,folllwing 函式才會返回 true:

in_range(X) when X>=0; X<16 -> true;
in_range(_) -> false.