Erlang功能

示例

功能是一组指令,它们被组合在一起。这些分组的指令一起执行某些任务。在erlang中,所有函数在调用时都会返回一个值。

下面是一个将两个数字相加的函数的示例

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

此函数对X和Y值执行加法运算并返回结果。功能可以如下使用

add(2,5).

函数声明可以包含多个由分号分隔的子句。这些子句中的每个参数都是通过模式匹配来评估的。如果参数是以下形式的元组,则以下函数将返回“元组”:{test,X},其中X可以是任何值。如果参数是格式为[“ test”,X]的长度为2的列表,它将返回'list',并且在任何其他情况下,它将返回'{error,“ Reason”}'':

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

如果参数不是元组,则将计算第二个子句。如果参数不是列表,则将评估第三子句。

函数声明可以包含所谓的“ Guards”或“ Guard Sequences”。这些Guard是限制函数求值的表达式。仅当所有Guard表达式均产生真值时,才执行带有Guards的函数。多个卫兵可以用分号分隔。

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

仅当保护序列为true时,才对函数'function_name'求值。仅当参数X在适当范围内(0..15)时,follwing函数才会返回true :

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